summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_subprocess.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2011-05-31 23:03:00 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2011-05-31 23:03:00 (GMT)
commit776e69b5b37a9f0678f2759c145ed26368aaba3f (patch)
tree2f26816a6d993a0eb1afe7fc64a87674ab425860 /Lib/test/test_subprocess.py
parentd9f5292443eb3da4c56a877b7096ad001ee5d848 (diff)
downloadcpython-776e69b5b37a9f0678f2759c145ed26368aaba3f.zip
cpython-776e69b5b37a9f0678f2759c145ed26368aaba3f.tar.gz
cpython-776e69b5b37a9f0678f2759c145ed26368aaba3f.tar.bz2
Close #12085: Fix an attribute error in subprocess.Popen destructor if the
constructor has failed, e.g. because of an undeclared keyword argument. Patch written by Oleg Oshmyan.
Diffstat (limited to 'Lib/test/test_subprocess.py')
-rw-r--r--Lib/test/test_subprocess.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index b635ef3..73c1b5c 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -113,6 +113,16 @@ class ProcessTestCase(BaseTestCase):
env=newenv)
self.assertEqual(rc, 1)
+ def test_invalid_args(self):
+ # Popen() called with invalid arguments should raise TypeError
+ # but Popen.__del__ should not complain (issue #12085)
+ with support.captured_stderr() as s:
+ self.assertRaises(TypeError, subprocess.Popen, invalid_arg_name=1)
+ argcount = subprocess.Popen.__init__.__code__.co_argcount
+ too_many_args = [0] * (argcount + 1)
+ self.assertRaises(TypeError, subprocess.Popen, *too_many_args)
+ self.assertEqual(s.getvalue(), '')
+
def test_stdin_none(self):
# .stdin is None when not redirected
p = subprocess.Popen([sys.executable, "-c", 'print "banana"'],