From 73e8a108519d09e6ac73291055fc37f03fd0a568 Mon Sep 17 00:00:00 2001 From: Pavel Tisnovsky Date: Wed, 27 Nov 2019 12:33:08 +0100 Subject: [PATCH] Example #5: Python interpreter --- testing/go-expect/05_python.go | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 testing/go-expect/05_python.go diff --git a/testing/go-expect/05_python.go b/testing/go-expect/05_python.go new file mode 100644 index 0000000..51162dc --- /dev/null +++ b/testing/go-expect/05_python.go @@ -0,0 +1,46 @@ +package main + +import ( + "log" + "os" + "os/exec" + "time" + + expect "github.com/Netflix/go-expect" +) + +func main() { + console, err := expect.NewConsole(expect.WithStdout(os.Stdout)) + if err != nil { + log.Fatal(err) + } + defer console.Close() + + command := exec.Command("python") + command.Stdin = console.Tty() + command.Stdout = console.Tty() + command.Stderr = console.Tty() + + err = command.Start() + if err != nil { + log.Fatal(err) + } + + time.Sleep(time.Second) + console.ExpectString(">>> ") + + console.SendLine("1+2") + console.ExpectString("3") + console.ExpectString(">>> ") + + console.SendLine("6*7") + console.ExpectString("42") + console.ExpectString(">>> ") + + console.SendLine("quit()") + + err = command.Wait() + if err != nil { + log.Fatal(err) + } +}