diff options
-rw-r--r-- | Lib/subprocess.py | 3 | ||||
-rw-r--r-- | Lib/test/test_subprocess.py | 11 |
2 files changed, 14 insertions, 0 deletions
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 # |