@@ -229,6 +229,23 @@ def test_close(self, m_signal): |
|
|
229 |
229 |
self.assertEqual(len(self.loop._signal_handlers), 0) |
230 |
230 |
m_signal.set_wakeup_fd.assert_called_once_with(-1) |
231 |
231 |
|
|
232 |
+@mock.patch('asyncio.unix_events.sys') |
|
233 |
+@mock.patch('asyncio.unix_events.signal') |
|
234 |
+def test_close_on_finalizing(self, m_signal, m_sys): |
|
235 |
+m_signal.NSIG = signal.NSIG |
|
236 |
+self.loop.add_signal_handler(signal.SIGHUP, lambda: True) |
|
237 |
+ |
|
238 |
+self.assertEqual(len(self.loop._signal_handlers), 1) |
|
239 |
+m_sys.is_finalizing.return_value = True |
|
240 |
+m_signal.signal.reset_mock() |
|
241 |
+ |
|
242 |
+with self.assertWarnsRegex(ResourceWarning, |
|
243 |
+"skipping signal handlers removal"): |
|
244 |
+self.loop.close() |
|
245 |
+ |
|
246 |
+self.assertEqual(len(self.loop._signal_handlers), 0) |
|
247 |
+self.assertFalse(m_signal.signal.called) |
|
248 |
+ |
232 |
249 |
|
233 |
250 |
@unittest.skipUnless(hasattr(socket, 'AF_UNIX'), |
234 |
251 |
'UNIX Sockets are not supported') |