Skip to content

Commit 1a6301e

Browse files
author
astrand
committed
Added three more testcases: Using communicate with only one of
stdin/stdout/stderr redirected. git-svn-id: http://svn.python.org/projects/python/trunk@38555 6015fed2-1504-0410-9fe1-9d1591cc4771
1 parent f667e25 commit 1a6301e

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Lib/test/test_subprocess.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,29 @@ def test_env(self):
248248
env=newenv)
249249
self.assertEqual(p.stdout.read(), "orange")
250250

251+
def test_communicate_stdin(self):
252+
p = subprocess.Popen([sys.executable, "-c",
253+
'import sys; sys.exit(sys.stdin.read() == "pear")'],
254+
stdin=subprocess.PIPE)
255+
p.communicate("pear")
256+
self.assertEqual(p.returncode, 1)
257+
258+
def test_communicate_stdout(self):
259+
p = subprocess.Popen([sys.executable, "-c",
260+
'import sys; sys.stdout.write("pineapple")'],
261+
stdout=subprocess.PIPE)
262+
(stdout, stderr) = p.communicate()
263+
self.assertEqual(stdout, "pineapple")
264+
self.assertEqual(stderr, None)
265+
266+
def test_communicate_stderr(self):
267+
p = subprocess.Popen([sys.executable, "-c",
268+
'import sys; sys.stderr.write("pineapple")'],
269+
stderr=subprocess.PIPE)
270+
(stdout, stderr) = p.communicate()
271+
self.assertEqual(stdout, None)
272+
self.assertEqual(stderr, "pineapple")
273+
251274
def test_communicate(self):
252275
p = subprocess.Popen([sys.executable, "-c",
253276
'import sys,os;' \

0 commit comments

Comments
 (0)