mirror of
https://github.com/python/cpython.git
synced 2025-10-18 04:38:07 +00:00
Addresses Issue #10838: The subprocess now module includes
SubprocessError and TimeoutError in its list of exported names for the users wild enough to use "from subprocess import *". MAXFD, mswindows and list2cmdline should be dealt with (renamed or moved) in separate commits. Committed at 35,000ft. Thanks chromebook free gogo wifi passes!
This commit is contained in:
parent
3c28878e40
commit
ace55865c5
3 changed files with 23 additions and 1 deletions
|
@ -433,7 +433,10 @@ else:
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
|
__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
|
||||||
"getoutput", "check_output", "CalledProcessError", "DEVNULL"]
|
"getoutput", "check_output", "CalledProcessError", "DEVNULL",
|
||||||
|
"SubprocessError", "TimeoutExpired"]
|
||||||
|
# NOTE: We intentionally exclude list2cmdline as it is
|
||||||
|
# considered an internal implementation detail. issue10838.
|
||||||
|
|
||||||
if mswindows:
|
if mswindows:
|
||||||
from _winapi import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
|
from _winapi import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
|
||||||
|
|
|
@ -2420,6 +2420,21 @@ class ProcessTestCaseNoPoll(ProcessTestCase):
|
||||||
subprocess._PopenSelector = self.orig_selector
|
subprocess._PopenSelector = self.orig_selector
|
||||||
ProcessTestCase.tearDown(self)
|
ProcessTestCase.tearDown(self)
|
||||||
|
|
||||||
|
def test__all__(self):
|
||||||
|
"""Ensure that __all__ is populated properly."""
|
||||||
|
intentionally_excluded = set(("list2cmdline", "mswindows", "MAXFD"))
|
||||||
|
exported = set(subprocess.__all__)
|
||||||
|
possible_exports = set()
|
||||||
|
import types
|
||||||
|
for name, value in subprocess.__dict__.items():
|
||||||
|
if name.startswith('_'):
|
||||||
|
continue
|
||||||
|
if isinstance(value, (types.ModuleType,)):
|
||||||
|
continue
|
||||||
|
possible_exports.add(name)
|
||||||
|
self.assertEqual(exported, possible_exports - intentionally_excluded)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(mswindows, "Windows-specific tests")
|
@unittest.skipUnless(mswindows, "Windows-specific tests")
|
||||||
class CommandsWithSpaces (BaseTestCase):
|
class CommandsWithSpaces (BaseTestCase):
|
||||||
|
|
|
@ -19,6 +19,10 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #10838: The subprocess now module includes SubprocessError and
|
||||||
|
TimeoutError in its list of exported names for the users wild enough
|
||||||
|
to use "from subprocess import *".
|
||||||
|
|
||||||
- Issue #23411: Added DefragResult, ParseResult, SplitResult, DefragResultBytes,
|
- Issue #23411: Added DefragResult, ParseResult, SplitResult, DefragResultBytes,
|
||||||
ParseResultBytes, and SplitResultBytes to urllib.parse.__all__.
|
ParseResultBytes, and SplitResultBytes to urllib.parse.__all__.
|
||||||
Patch by Martin Panter.
|
Patch by Martin Panter.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue