databricks-cli/libs/process/forwarded_test.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)
}