mirror of https://github.com/databricks/cli.git
44 lines
957 B
Go
44 lines
957 B
Go
|
package process
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"context"
|
||
|
"os/exec"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestForwarded(t *testing.T) {
|
||
|
ctx := context.Background()
|
||
|
var buf bytes.Buffer
|
||
|
err := Forwarded(ctx, []string{
|
||
|
"python3", "-c", "print(input('input: '))",
|
||
|
}, strings.NewReader("abc\n"), &buf, &buf)
|
||
|
assert.NoError(t, err)
|
||
|
|
||
|
assert.Equal(t, "input: abc", strings.TrimSpace(buf.String()))
|
||
|
}
|
||
|
|
||
|
func TestForwardedFails(t *testing.T) {
|
||
|
ctx := context.Background()
|
||
|
var buf bytes.Buffer
|
||
|
err := Forwarded(ctx, []string{
|
||
|
"_non_existent_",
|
||
|
}, strings.NewReader("abc\n"), &buf, &buf)
|
||
|
assert.NotNil(t, err)
|
||
|
}
|
||
|
|
||
|
func TestForwardedFailsOnStdinPipe(t *testing.T) {
|
||
|
ctx := context.Background()
|
||
|
var buf bytes.Buffer
|
||
|
err := Forwarded(ctx, []string{
|
||
|
"_non_existent_",
|
||
|
}, strings.NewReader("abc\n"), &buf, &buf, func(_ context.Context, c *exec.Cmd) error {
|
||
|
c.Stdin = strings.NewReader("x")
|
||
|
return nil
|
||
|
})
|
||
|
assert.NotNil(t, err)
|
||
|
}
|