summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-02-09 01:51:40 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-02-09 01:51:40 (GMT)
commit0c3949c963c9f39095f85c5ec24d0f958e915ae9 (patch)
treea16ce129bb19d0494e3941f2bb02c6deaab7ec50
parent313f829ce8f7160ea25bfd6f14ea0ac37264e0ae (diff)
downloadcpython-0c3949c963c9f39095f85c5ec24d0f958e915ae9.zip
cpython-0c3949c963c9f39095f85c5ec24d0f958e915ae9.tar.gz
cpython-0c3949c963c9f39095f85c5ec24d0f958e915ae9.tar.bz2
asyncio: Remove Process.subprocess attribute; it's too easy to get inconsistent
Process and Popen objects
-rw-r--r--Doc/library/asyncio-subprocess.rst6
-rw-r--r--Lib/asyncio/subprocess.py4
-rw-r--r--Lib/test/test_asyncio/test_subprocess.py20
3 files changed, 1 insertions, 29 deletions
diff --git a/Doc/library/asyncio-subprocess.rst b/Doc/library/asyncio-subprocess.rst
index a2c46dc..5e6e657 100644
--- a/Doc/library/asyncio-subprocess.rst
+++ b/Doc/library/asyncio-subprocess.rst
@@ -87,10 +87,6 @@ Process
Standard error stream (read), ``None`` if the process was created with
``stderr=None``.
- .. attribute:: subprocess
-
- Underlying :class:`subprocess.Popen` object.
-
.. method:: communicate(input=None)
Interact with process: Send data to stdin. Read data from stdout and
@@ -102,7 +98,7 @@ Process
:meth:`communicate` returns a tuple ``(stdoutdata, stderrdata)``.
Note that if you want to send data to the process's stdin, you need to
- create the Popen object with ``stdin=PIPE``. Similarly, to get anything
+ create the Process object with ``stdin=PIPE``. Similarly, to get anything
other than ``None`` in the result tuple, you need to give ``stdout=PIPE``
and/or ``stderr=PIPE`` too.
diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py
index 3047894..848d64f 100644
--- a/Lib/asyncio/subprocess.py
+++ b/Lib/asyncio/subprocess.py
@@ -106,10 +106,6 @@ class Process:
yield from waiter
return waiter.result()
- @property
- def subprocess(self):
- return self._transport.get_extra_info('subprocess')
-
def _check_alive(self):
if self._transport.get_returncode() is not None:
raise ProcessLookupError()
diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py
index 785156c..1b2f05b 100644
--- a/Lib/test/test_asyncio/test_subprocess.py
+++ b/Lib/test/test_asyncio/test_subprocess.py
@@ -7,9 +7,6 @@ from test import support
if sys.platform != 'win32':
from asyncio import unix_events
-# Program exiting quickly
-PROGRAM_EXIT_FAST = [sys.executable, '-c', 'pass']
-
# Program blocking
PROGRAM_BLOCKED = [sys.executable, '-c', 'import time; time.sleep(3600)']
@@ -119,23 +116,6 @@ class SubprocessMixin:
returncode = self.loop.run_until_complete(proc.wait())
self.assertEqual(-signal.SIGHUP, returncode)
- def test_subprocess(self):
- args = PROGRAM_EXIT_FAST
-
- @asyncio.coroutine
- def run():
- proc = yield from asyncio.create_subprocess_exec(*args,
- loop=self.loop)
- yield from proc.wait()
- # need to poll subprocess.Popen, otherwise the returncode
- # attribute is not set
- proc.subprocess.wait()
- return proc
-
- proc = self.loop.run_until_complete(run())
- self.assertEqual(proc.subprocess.returncode, proc.returncode)
- self.assertEqual(proc.subprocess.pid, proc.pid)
-
def test_broken_pipe(self):
large_data = b'x' * support.PIPE_MAX_SIZE