diff options
Diffstat (limited to 'Lib/test/test_subprocess.py')
| -rw-r--r-- | Lib/test/test_subprocess.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index ec1e186..8759941 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -9,6 +9,7 @@ import tempfile import time import re import sysconfig +import warnings try: import gc except ImportError: @@ -57,6 +58,34 @@ class BaseTestCase(unittest.TestCase): self.assertEqual(actual, expected, msg) +class DeprecationWarningTests(BaseTestCase): + def setUp(self): + BaseTestCase.setUp(self) + self._saved_warn = warnings.warn + self._warn_calls = [] + warnings.warn = self._record_warn + + def tearDown(self): + warnings.warn = self._saved_warn + BaseTestCase.tearDown(self) + + def _record_warn(self, *args): + """A warnings.warn function that records calls.""" + self._warn_calls.append(args) + self._saved_warn(*args) + + def testCloseFdsWarning(self): + quick_process = [sys.executable, "-c", "import sys; sys.exit(0)"] + subprocess.call(quick_process, close_fds=True) + self.assertEqual([], self._warn_calls) + subprocess.call(quick_process, close_fds=False) + self.assertEqual([], self._warn_calls) + self.assertWarns(DeprecationWarning, subprocess.call, quick_process) + self.assertEqual(1, len(self._warn_calls)) + self.assertIn('close_fds parameter was not specified', + self._warn_calls[0][0]) + + class ProcessTestCase(BaseTestCase): def test_call_seq(self): @@ -1233,7 +1262,8 @@ def test_main(): ProcessTestCaseNoPoll, HelperFunctionTests, CommandsWithSpaces, - ContextManagerTests) + ContextManagerTests, + DeprecationWarningTests) support.run_unittest(*unit_tests) support.reap_children() |
