1234567891011121314151617181920212223242526272829303132333435 |
- package main
- import (
- "bytes"
- "io"
- "os"
- "os/exec"
- "testing"
- )
- func TestLoginWithoutTTY(t *testing.T) {
- cmd := exec.Command(dockerBinary, "login")
- // setup STDOUT and STDERR so that we see any output and errors in our console
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- // create a buffer with text then a new line as a return
- buf := bytes.NewBuffer([]byte("buffer test string \n"))
- // use a pipe for stdin and manually copy the data so that
- // the process does not get the TTY
- in, err := cmd.StdinPipe()
- if err != nil {
- t.Fatal(err)
- }
- // copy the bytes into the commands stdin along with a new line
- go io.Copy(in, buf)
- // run the command and block until it's done
- if err := cmd.Run(); err == nil {
- t.Fatal("Expected non nil err when loginning in & TTY not available")
- }
- logDone("login - login without TTY")
- }
|