Kaydet (Commit) c4c46491 authored tarafından Victor Stinner's avatar Victor Stinner

asyncio: sync with Tulip

* Tulip issue 194: Don't use sys.getrefcount() in unit tests
* signal.set_wakeup_fd() can now raise an OSError on Python 3.5
üst 8966759b
...@@ -74,7 +74,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): ...@@ -74,7 +74,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
# event loop running in another thread cannot add a signal # event loop running in another thread cannot add a signal
# handler. # handler.
signal.set_wakeup_fd(self._csock.fileno()) signal.set_wakeup_fd(self._csock.fileno())
except ValueError as exc: except (ValueError, OSError) as exc:
raise RuntimeError(str(exc)) raise RuntimeError(str(exc))
handle = events.Handle(callback, args, self) handle = events.Handle(callback, args, self)
...@@ -93,7 +93,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): ...@@ -93,7 +93,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
if not self._signal_handlers: if not self._signal_handlers:
try: try:
signal.set_wakeup_fd(-1) signal.set_wakeup_fd(-1)
except ValueError as nexc: except (ValueError, OSError) as nexc:
logger.info('set_wakeup_fd(-1) failed: %s', nexc) logger.info('set_wakeup_fd(-1) failed: %s', nexc)
if exc.errno == errno.EINVAL: if exc.errno == errno.EINVAL:
...@@ -138,7 +138,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): ...@@ -138,7 +138,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
if not self._signal_handlers: if not self._signal_handlers:
try: try:
signal.set_wakeup_fd(-1) signal.set_wakeup_fd(-1)
except ValueError as exc: except (ValueError, OSError) as exc:
logger.info('set_wakeup_fd(-1) failed: %s', exc) logger.info('set_wakeup_fd(-1) failed: %s', exc)
return True return True
......
...@@ -672,6 +672,8 @@ class SelectorTransportTests(test_utils.TestCase): ...@@ -672,6 +672,8 @@ class SelectorTransportTests(test_utils.TestCase):
def test_connection_lost(self): def test_connection_lost(self):
exc = OSError() exc = OSError()
tr = _SelectorTransport(self.loop, self.sock, self.protocol, None) tr = _SelectorTransport(self.loop, self.sock, self.protocol, None)
self.assertIsNotNone(tr._protocol)
self.assertIsNotNone(tr._loop)
tr._call_connection_lost(exc) tr._call_connection_lost(exc)
self.protocol.connection_lost.assert_called_with(exc) self.protocol.connection_lost.assert_called_with(exc)
...@@ -679,8 +681,6 @@ class SelectorTransportTests(test_utils.TestCase): ...@@ -679,8 +681,6 @@ class SelectorTransportTests(test_utils.TestCase):
self.assertIsNone(tr._sock) self.assertIsNone(tr._sock)
self.assertIsNone(tr._protocol) self.assertIsNone(tr._protocol)
self.assertEqual(2, sys.getrefcount(self.protocol),
pprint.pformat(gc.get_referrers(self.protocol)))
self.assertIsNone(tr._loop) self.assertIsNone(tr._loop)
......
...@@ -435,6 +435,8 @@ class UnixReadPipeTransportTests(test_utils.TestCase): ...@@ -435,6 +435,8 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
def test__call_connection_lost(self): def test__call_connection_lost(self):
tr = unix_events._UnixReadPipeTransport( tr = unix_events._UnixReadPipeTransport(
self.loop, self.pipe, self.protocol) self.loop, self.pipe, self.protocol)
self.assertIsNotNone(tr._protocol)
self.assertIsNotNone(tr._loop)
err = None err = None
tr._call_connection_lost(err) tr._call_connection_lost(err)
...@@ -442,13 +444,13 @@ class UnixReadPipeTransportTests(test_utils.TestCase): ...@@ -442,13 +444,13 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
self.pipe.close.assert_called_with() self.pipe.close.assert_called_with()
self.assertIsNone(tr._protocol) self.assertIsNone(tr._protocol)
self.assertEqual(2, sys.getrefcount(self.protocol),
pprint.pformat(gc.get_referrers(self.protocol)))
self.assertIsNone(tr._loop) self.assertIsNone(tr._loop)
def test__call_connection_lost_with_err(self): def test__call_connection_lost_with_err(self):
tr = unix_events._UnixReadPipeTransport( tr = unix_events._UnixReadPipeTransport(
self.loop, self.pipe, self.protocol) self.loop, self.pipe, self.protocol)
self.assertIsNotNone(tr._protocol)
self.assertIsNotNone(tr._loop)
err = OSError() err = OSError()
tr._call_connection_lost(err) tr._call_connection_lost(err)
...@@ -456,9 +458,6 @@ class UnixReadPipeTransportTests(test_utils.TestCase): ...@@ -456,9 +458,6 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
self.pipe.close.assert_called_with() self.pipe.close.assert_called_with()
self.assertIsNone(tr._protocol) self.assertIsNone(tr._protocol)
self.assertEqual(2, sys.getrefcount(self.protocol),
pprint.pformat(gc.get_referrers(self.protocol)))
self.assertIsNone(tr._loop) self.assertIsNone(tr._loop)
...@@ -717,6 +716,8 @@ class UnixWritePipeTransportTests(test_utils.TestCase): ...@@ -717,6 +716,8 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
def test__call_connection_lost(self): def test__call_connection_lost(self):
tr = unix_events._UnixWritePipeTransport( tr = unix_events._UnixWritePipeTransport(
self.loop, self.pipe, self.protocol) self.loop, self.pipe, self.protocol)
self.assertIsNotNone(tr._protocol)
self.assertIsNotNone(tr._loop)
err = None err = None
tr._call_connection_lost(err) tr._call_connection_lost(err)
...@@ -724,13 +725,13 @@ class UnixWritePipeTransportTests(test_utils.TestCase): ...@@ -724,13 +725,13 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
self.pipe.close.assert_called_with() self.pipe.close.assert_called_with()
self.assertIsNone(tr._protocol) self.assertIsNone(tr._protocol)
self.assertEqual(2, sys.getrefcount(self.protocol),
pprint.pformat(gc.get_referrers(self.protocol)))
self.assertIsNone(tr._loop) self.assertIsNone(tr._loop)
def test__call_connection_lost_with_err(self): def test__call_connection_lost_with_err(self):
tr = unix_events._UnixWritePipeTransport( tr = unix_events._UnixWritePipeTransport(
self.loop, self.pipe, self.protocol) self.loop, self.pipe, self.protocol)
self.assertIsNotNone(tr._protocol)
self.assertIsNotNone(tr._loop)
err = OSError() err = OSError()
tr._call_connection_lost(err) tr._call_connection_lost(err)
...@@ -738,8 +739,6 @@ class UnixWritePipeTransportTests(test_utils.TestCase): ...@@ -738,8 +739,6 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
self.pipe.close.assert_called_with() self.pipe.close.assert_called_with()
self.assertIsNone(tr._protocol) self.assertIsNone(tr._protocol)
self.assertEqual(2, sys.getrefcount(self.protocol),
pprint.pformat(gc.get_referrers(self.protocol)))
self.assertIsNone(tr._loop) self.assertIsNone(tr._loop)
def test_close(self): def test_close(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment