]> granicus.if.org Git - python/commitdiff
Add unittests demonstrating issue #11432.
authorGregory P. Smith <greg@krypto.org>
Tue, 15 Mar 2011 18:55:17 +0000 (14:55 -0400)
committerGregory P. Smith <greg@krypto.org>
Tue, 15 Mar 2011 18:55:17 +0000 (14:55 -0400)
Lib/test/test_subprocess.py

index 5e6c40f033dad157fffe85472967fa59b218b75d..92b61a96987848b2793e95861b1836c6a1efc17a 100644 (file)
@@ -3,6 +3,7 @@ from test import support
 import subprocess
 import sys
 import signal
+import io
 import os
 import errno
 import tempfile
@@ -1256,6 +1257,24 @@ class POSIXProcessTestCase(BaseTestCase):
                         close_fds=False, pass_fds=(fd, )))
             self.assertIn('overriding close_fds', str(context.warning))
 
+    def test_stdout_stdin_are_single_inout_fd(self):
+        with io.open(os.devnull, "r+") as inout:
+            p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
+                                 stdout=inout, stdin=inout)
+            p.wait()
+
+    def test_stdout_stderr_are_single_inout_fd(self):
+        with io.open(os.devnull, "r+") as inout:
+            p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
+                                 stdout=inout, stderr=inout)
+            p.wait()
+
+    def test_stderr_stdin_are_single_inout_fd(self):
+        with io.open(os.devnull, "r+") as inout:
+            p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
+                                 stderr=inout, stdin=inout)
+            p.wait()
+
     def test_wait_when_sigchild_ignored(self):
         # NOTE: sigchild_ignore.py may not be an effective test on all OSes.
         sigchild_ignore = support.findfile("sigchild_ignore.py",
@@ -1528,19 +1547,6 @@ class ContextManagerTests(ProcessTestCase):
                 raise c.exception
 
 
-def test_main():
-    unit_tests = (ProcessTestCase,
-                  POSIXProcessTestCase,
-                  Win32ProcessTestCase,
-                  ProcessTestCasePOSIXPurePython,
-                  CommandTests,
-                  ProcessTestCaseNoPoll,
-                  HelperFunctionTests,
-                  CommandsWithSpaces,
-                  ContextManagerTests)
-
-    support.run_unittest(*unit_tests)
-    support.reap_children()
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
+    support.reap_children()