[Python-checkins] cpython (3.4): Issue #23243: Close explicitly event loops in asyncio tests
victor.stinner
python-checkins at python.org
Thu Jan 15 13:31:20 CET 2015
https://hg.python.org/cpython/rev/aef0f9b4e729
changeset: 94168:aef0f9b4e729
branch: 3.4
user: Victor Stinner <victor.stinner at gmail.com>
date: Thu Jan 15 13:17:34 2015 +0100
summary:
Issue #23243: Close explicitly event loops in asyncio tests
files:
Lib/test/test_asyncio/test_base_events.py | 1 +
Lib/test/test_asyncio/test_proactor_events.py | 4 ++
Lib/test/test_asyncio/test_selector_events.py | 16 +++++++++-
3 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
--- a/Lib/test/test_asyncio/test_base_events.py
+++ b/Lib/test/test_asyncio/test_base_events.py
@@ -590,6 +590,7 @@
raise ValueError('spam')
loop = Loop()
+ self.addCleanup(loop.close)
asyncio.set_event_loop(loop)
def run_loop():
diff --git a/Lib/test/test_asyncio/test_proactor_events.py b/Lib/test/test_asyncio/test_proactor_events.py
--- a/Lib/test/test_asyncio/test_proactor_events.py
+++ b/Lib/test/test_asyncio/test_proactor_events.py
@@ -16,6 +16,7 @@
def setUp(self):
self.loop = self.new_test_loop()
+ self.addCleanup(self.loop.close)
self.proactor = mock.Mock()
self.loop._proactor = self.proactor
self.protocol = test_utils.make_test_protocol(asyncio.Protocol)
@@ -459,6 +460,9 @@
self.assertIsNone(self.loop._ssock)
self.assertIsNone(self.loop._csock)
+ # Don't call close(): _close_self_pipe() cannot be called twice
+ self.loop._closed = True
+
def test_close(self):
self.loop._close_self_pipe = mock.Mock()
self.loop.close()
diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py
--- a/Lib/test/test_asyncio/test_selector_events.py
+++ b/Lib/test/test_asyncio/test_selector_events.py
@@ -24,6 +24,11 @@
class TestBaseSelectorEventLoop(BaseSelectorEventLoop):
+ def close(self):
+ # Don't call the close() method of the parent class, because the
+ # selector is mocked
+ self._closed = True
+
def _make_self_pipe(self):
self._ssock = mock.Mock()
self._csock = mock.Mock()
@@ -40,7 +45,7 @@
self.selector = mock.Mock()
self.selector.select.return_value = []
self.loop = TestBaseSelectorEventLoop(self.selector)
- self.set_event_loop(self.loop, cleanup=False)
+ self.set_event_loop(self.loop)
def test_make_socket_transport(self):
m = mock.Mock()
@@ -76,6 +81,15 @@
self.loop._make_ssl_transport(m, m, m, m)
def test_close(self):
+ class EventLoop(BaseSelectorEventLoop):
+ def _make_self_pipe(self):
+ self._ssock = mock.Mock()
+ self._csock = mock.Mock()
+ self._internal_fds += 1
+
+ self.loop = EventLoop(self.selector)
+ self.set_event_loop(self.loop)
+
ssock = self.loop._ssock
ssock.fileno.return_value = 7
csock = self.loop._csock
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list