summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio/test_subprocess.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-01-15 21:52:59 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-01-15 21:52:59 (GMT)
commitf716d8b7a53ee2ed3b6dc42f7f6b00ac211209d8 (patch)
treee3e869e47259a968d24cb3f80b72f926bba24188 /Lib/test/test_asyncio/test_subprocess.py
parent406204c8c2e2adb890b29210c905f6fc7164b397 (diff)
downloadcpython-f716d8b7a53ee2ed3b6dc42f7f6b00ac211209d8.zip
cpython-f716d8b7a53ee2ed3b6dc42f7f6b00ac211209d8.tar.gz
cpython-f716d8b7a53ee2ed3b6dc42f7f6b00ac211209d8.tar.bz2
Issue #22685: Fix test_pause_reading() of asyncio/test_subprocess
Override the connect_read_pipe() method of the loop to mock immediatly pause_reading() and resume_reading() methods. The test failed randomly on FreeBSD 9 buildbot and on Windows using trollius.
Diffstat (limited to 'Lib/test/test_asyncio/test_subprocess.py')
-rw-r--r--Lib/test/test_asyncio/test_subprocess.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py
index a4c1f69..ecc2c9d 100644
--- a/Lib/test/test_asyncio/test_subprocess.py
+++ b/Lib/test/test_asyncio/test_subprocess.py
@@ -179,6 +179,18 @@ class SubprocessMixin:
'sys.stdout.write("x" * %s)' % size,
'sys.stdout.flush()',
))
+
+ connect_read_pipe = self.loop.connect_read_pipe
+
+ @asyncio.coroutine
+ def connect_read_pipe_mock(*args, **kw):
+ transport, protocol = yield from connect_read_pipe(*args, **kw)
+ transport.pause_reading = mock.Mock()
+ transport.resume_reading = mock.Mock()
+ return (transport, protocol)
+
+ self.loop.connect_read_pipe = connect_read_pipe_mock
+
proc = yield from asyncio.create_subprocess_exec(
sys.executable, '-c', code,
stdin=asyncio.subprocess.PIPE,
@@ -186,8 +198,6 @@ class SubprocessMixin:
limit=limit,
loop=self.loop)
stdout_transport = proc._transport.get_pipe_transport(1)
- stdout_transport.pause_reading = mock.Mock()
- stdout_transport.resume_reading = mock.Mock()
stdout, stderr = yield from proc.communicate()