From 738131d39130563ad75e73ed544e2a3edbae64f2 Mon Sep 17 00:00:00 2001 From: Peter Astrand Date: Tue, 30 Nov 2004 21:04:45 +0000 Subject: Raise TypeError if bufsize argument is not an integer. Patch 1071755, slightly modified. --- Lib/subprocess.py | 3 +++ Lib/test/test_subprocess.py | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 8d0204e..9e326fb 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -504,6 +504,9 @@ class Popen(object): """Create new Popen instance.""" _cleanup() + if not isinstance(bufsize, (int, long)): + raise TypeError("bufsize must be an integer") + if mswindows: if preexec_fn is not None: raise ValueError("preexec_fn is not supported on Windows " diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index 9f7184f..b26d40c 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -394,6 +394,17 @@ class ProcessTestCase(unittest.TestCase): # Subsequent invocations should just return the returncode self.assertEqual(p.wait(), 0) + + def test_invalid_bufsize(self): + # an invalid type of the bufsize argument should raise + # TypeError. + try: + subprocess.Popen([sys.executable, "-c", "pass"], "orange") + except TypeError: + pass + else: + self.fail("Expected TypeError") + # # POSIX tests # -- cgit v0.12