mirror of
https://github.com/python/cpython.git
synced 2026-07-13 05:18:50 -04:00
d97d52cfb5
(cherry picked from commit 6d209cbb93)
Co-authored-by: mdehoon <mjldehoon@yahoo.com>
56 lines
2.0 KiB
Python
56 lines
2.0 KiB
Python
# test_tkinter_pipe.py
|
|
import unittest
|
|
import subprocess
|
|
import sys
|
|
from test import support
|
|
|
|
|
|
@unittest.skipUnless(support.has_subprocess_support, "test requires subprocess")
|
|
class TkinterPipeTest(unittest.TestCase):
|
|
|
|
def test_tkinter_pipe_buffered(self):
|
|
args = [sys.executable, "-i"]
|
|
proc = subprocess.Popen(args,
|
|
stdin=subprocess.PIPE,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE)
|
|
proc.stdin.write(b"import tkinter\n")
|
|
proc.stdin.write(b"interpreter = tkinter.Tcl()\n")
|
|
proc.stdin.write(b"print('hello')\n")
|
|
proc.stdin.write(b"print('goodbye')\n")
|
|
proc.stdin.write(b"quit()\n")
|
|
stdout, stderr = proc.communicate(timeout=support.SHORT_TIMEOUT)
|
|
stdout = stdout.decode()
|
|
self.assertEqual(stdout.split(), ['hello', 'goodbye'])
|
|
|
|
def test_tkinter_pipe_unbuffered(self):
|
|
args = [sys.executable, "-i", "-u"]
|
|
proc = subprocess.Popen(args,
|
|
stdin=subprocess.PIPE,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE)
|
|
proc.stdin.write(b"import tkinter\n")
|
|
proc.stdin.write(b"interpreter = tkinter.Tcl()\n")
|
|
|
|
proc.stdin.write(b"print('hello')\n")
|
|
proc.stdin.flush()
|
|
stdout = proc.stdout.readline()
|
|
stdout = stdout.decode()
|
|
self.assertEqual(stdout.strip(), 'hello')
|
|
|
|
proc.stdin.write(b"print('hello again')\n")
|
|
proc.stdin.flush()
|
|
stdout = proc.stdout.readline()
|
|
stdout = stdout.decode()
|
|
self.assertEqual(stdout.strip(), 'hello again')
|
|
|
|
proc.stdin.write(b"print('goodbye')\n")
|
|
proc.stdin.write(b"quit()\n")
|
|
stdout, stderr = proc.communicate(timeout=support.SHORT_TIMEOUT)
|
|
stdout = stdout.decode()
|
|
self.assertEqual(stdout.strip(), 'goodbye')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|