Issue #20572: The subprocess.Popen.wait method's undocumented endtime
parameter now raises a DeprecationWarning. It was deprecated in 3.4. It was never documented prior to that.
This commit is contained in:
parent
cf01441315
commit
f0e98c510d
|
@ -1031,6 +1031,10 @@ class Popen(object):
|
|||
"""Wait for child process to terminate. Returns returncode
|
||||
attribute."""
|
||||
if endtime is not None:
|
||||
warnings.warn(
|
||||
"'endtime' argument is deprecated; use 'timeout'.",
|
||||
DeprecationWarning,
|
||||
stacklevel=2)
|
||||
timeout = self._remaining_time(endtime)
|
||||
if timeout is None:
|
||||
timeout_millis = _winapi.INFINITE
|
||||
|
@ -1392,8 +1396,11 @@ class Popen(object):
|
|||
if self.returncode is not None:
|
||||
return self.returncode
|
||||
|
||||
# endtime is preferred to timeout. timeout is only used for
|
||||
# printing.
|
||||
if endtime is not None:
|
||||
warnings.warn(
|
||||
"'endtime' argument is deprecated; use 'timeout'.",
|
||||
DeprecationWarning,
|
||||
stacklevel=2)
|
||||
if endtime is not None or timeout is not None:
|
||||
if endtime is None:
|
||||
endtime = _time() + timeout
|
||||
|
|
|
@ -1015,6 +1015,19 @@ class ProcessTestCase(BaseTestCase):
|
|||
# time to start.
|
||||
self.assertEqual(p.wait(timeout=3), 0)
|
||||
|
||||
def test_wait_endtime(self):
|
||||
"""Confirm that the deprecated endtime parameter warns."""
|
||||
p = subprocess.Popen([sys.executable, "-c", "pass"])
|
||||
try:
|
||||
with self.assertWarns(DeprecationWarning) as warn_cm:
|
||||
p.wait(endtime=time.time()+0.01)
|
||||
except subprocess.TimeoutExpired:
|
||||
pass # We're not testing endtime timeout behavior.
|
||||
finally:
|
||||
p.kill()
|
||||
self.assertIn('test_subprocess.py', warn_cm.filename)
|
||||
self.assertIn('endtime', str(warn_cm.warning))
|
||||
|
||||
def test_invalid_bufsize(self):
|
||||
# an invalid type of the bufsize argument should raise
|
||||
# TypeError.
|
||||
|
@ -2777,19 +2790,5 @@ class ContextManagerTests(BaseTestCase):
|
|||
self.assertTrue(proc.stdin.closed)
|
||||
|
||||
|
||||
def test_main():
|
||||
unit_tests = (ProcessTestCase,
|
||||
POSIXProcessTestCase,
|
||||
Win32ProcessTestCase,
|
||||
MiscTests,
|
||||
ProcessTestCaseNoPoll,
|
||||
CommandsWithSpaces,
|
||||
ContextManagerTests,
|
||||
RunFuncTestCase,
|
||||
)
|
||||
|
||||
support.run_unittest(*unit_tests)
|
||||
support.reap_children()
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -40,6 +40,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #20572: The subprocess.Popen.wait method's undocumented
|
||||
endtime parameter now raises a DeprecationWarning.
|
||||
|
||||
- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and
|
||||
from_buffer_copy() methods on abstract classes like Array.
|
||||
|
||||
|
|
Loading…
Reference in New Issue