]> granicus.if.org Git - python/commitdiff
Added three more testcases: Using communicate with only one of
authorPeter Astrand <astrand@lysator.liu.se>
Thu, 3 Mar 2005 20:24:28 +0000 (20:24 +0000)
committerPeter Astrand <astrand@lysator.liu.se>
Thu, 3 Mar 2005 20:24:28 +0000 (20:24 +0000)
stdin/stdout/stderr redirected.

Lib/test/test_subprocess.py

index 52f4d4711d25ac063d539197b663f37f0d3cf75d..e8415cdf80ac321ccb40b684da0f5b25c3306872 100644 (file)
@@ -248,6 +248,29 @@ class ProcessTestCase(unittest.TestCase):
                          env=newenv)
         self.assertEqual(p.stdout.read(), "orange")
 
+    def test_communicate_stdin(self):
+        p = subprocess.Popen([sys.executable, "-c",
+                              'import sys; sys.exit(sys.stdin.read() == "pear")'],
+                             stdin=subprocess.PIPE)
+        p.communicate("pear")
+        self.assertEqual(p.returncode, 1)
+
+    def test_communicate_stdout(self):
+        p = subprocess.Popen([sys.executable, "-c",
+                              'import sys; sys.stdout.write("pineapple")'],
+                             stdout=subprocess.PIPE)
+        (stdout, stderr) = p.communicate()
+        self.assertEqual(stdout, "pineapple")
+        self.assertEqual(stderr, None)
+
+    def test_communicate_stderr(self):
+        p = subprocess.Popen([sys.executable, "-c",
+                              'import sys; sys.stderr.write("pineapple")'],
+                             stderr=subprocess.PIPE)
+        (stdout, stderr) = p.communicate()
+        self.assertEqual(stdout, None)
+        self.assertEqual(stderr, "pineapple")
+
     def test_communicate(self):
         p = subprocess.Popen([sys.executable, "-c",
                           'import sys,os;' \