]> granicus.if.org Git - python/commitdiff
asyncio: sync with Tulip
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 23 Jul 2014 16:21:45 +0000 (18:21 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 23 Jul 2014 16:21:45 +0000 (18:21 +0200)
* Tulip issue 194: Don't use sys.getrefcount() in unit tests
* signal.set_wakeup_fd() can now raise an OSError on Python 3.5

Lib/asyncio/unix_events.py
Lib/test/test_asyncio/test_selector_events.py
Lib/test/test_asyncio/test_unix_events.py

index 73a85c11c0dbf612058d71b42d4408f773e0157c..5020cc5db58e2441c369dbeba8418dfa506aee45 100644 (file)
@@ -74,7 +74,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
             # event loop running in another thread cannot add a signal
             # handler.
             signal.set_wakeup_fd(self._csock.fileno())
-        except ValueError as exc:
+        except (ValueError, OSError) as exc:
             raise RuntimeError(str(exc))
 
         handle = events.Handle(callback, args, self)
@@ -93,7 +93,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
             if not self._signal_handlers:
                 try:
                     signal.set_wakeup_fd(-1)
-                except ValueError as nexc:
+                except (ValueError, OSError) as nexc:
                     logger.info('set_wakeup_fd(-1) failed: %s', nexc)
 
             if exc.errno == errno.EINVAL:
@@ -138,7 +138,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
         if not self._signal_handlers:
             try:
                 signal.set_wakeup_fd(-1)
-            except ValueError as exc:
+            except (ValueError, OSError) as exc:
                 logger.info('set_wakeup_fd(-1) failed: %s', exc)
 
         return True
index c0f388d62004fc2d6cc2d355e0fbe15c49f70438..bd6c2f26b75245aa57c1092c1fb21fb035ff36c6 100644 (file)
@@ -672,6 +672,8 @@ class SelectorTransportTests(test_utils.TestCase):
     def test_connection_lost(self):
         exc = OSError()
         tr = _SelectorTransport(self.loop, self.sock, self.protocol, None)
+        self.assertIsNotNone(tr._protocol)
+        self.assertIsNotNone(tr._loop)
         tr._call_connection_lost(exc)
 
         self.protocol.connection_lost.assert_called_with(exc)
@@ -679,8 +681,6 @@ class SelectorTransportTests(test_utils.TestCase):
         self.assertIsNone(tr._sock)
 
         self.assertIsNone(tr._protocol)
-        self.assertEqual(2, sys.getrefcount(self.protocol),
-                         pprint.pformat(gc.get_referrers(self.protocol)))
         self.assertIsNone(tr._loop)
 
 
index d355defbee0c97918e99b70103677987a9e12b36..099d4d51af4af461bd7b2af93647a3ae85791a90 100644 (file)
@@ -435,6 +435,8 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
     def test__call_connection_lost(self):
         tr = unix_events._UnixReadPipeTransport(
             self.loop, self.pipe, self.protocol)
+        self.assertIsNotNone(tr._protocol)
+        self.assertIsNotNone(tr._loop)
 
         err = None
         tr._call_connection_lost(err)
@@ -442,13 +444,13 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
         self.pipe.close.assert_called_with()
 
         self.assertIsNone(tr._protocol)
-        self.assertEqual(2, sys.getrefcount(self.protocol),
-                         pprint.pformat(gc.get_referrers(self.protocol)))
         self.assertIsNone(tr._loop)
 
     def test__call_connection_lost_with_err(self):
         tr = unix_events._UnixReadPipeTransport(
             self.loop, self.pipe, self.protocol)
+        self.assertIsNotNone(tr._protocol)
+        self.assertIsNotNone(tr._loop)
 
         err = OSError()
         tr._call_connection_lost(err)
@@ -456,9 +458,6 @@ class UnixReadPipeTransportTests(test_utils.TestCase):
         self.pipe.close.assert_called_with()
 
         self.assertIsNone(tr._protocol)
-
-        self.assertEqual(2, sys.getrefcount(self.protocol),
-                         pprint.pformat(gc.get_referrers(self.protocol)))
         self.assertIsNone(tr._loop)
 
 
@@ -717,6 +716,8 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
     def test__call_connection_lost(self):
         tr = unix_events._UnixWritePipeTransport(
             self.loop, self.pipe, self.protocol)
+        self.assertIsNotNone(tr._protocol)
+        self.assertIsNotNone(tr._loop)
 
         err = None
         tr._call_connection_lost(err)
@@ -724,13 +725,13 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
         self.pipe.close.assert_called_with()
 
         self.assertIsNone(tr._protocol)
-        self.assertEqual(2, sys.getrefcount(self.protocol),
-                         pprint.pformat(gc.get_referrers(self.protocol)))
         self.assertIsNone(tr._loop)
 
     def test__call_connection_lost_with_err(self):
         tr = unix_events._UnixWritePipeTransport(
             self.loop, self.pipe, self.protocol)
+        self.assertIsNotNone(tr._protocol)
+        self.assertIsNotNone(tr._loop)
 
         err = OSError()
         tr._call_connection_lost(err)
@@ -738,8 +739,6 @@ class UnixWritePipeTransportTests(test_utils.TestCase):
         self.pipe.close.assert_called_with()
 
         self.assertIsNone(tr._protocol)
-        self.assertEqual(2, sys.getrefcount(self.protocol),
-                         pprint.pformat(gc.get_referrers(self.protocol)))
         self.assertIsNone(tr._loop)
 
     def test_close(self):