Close #18396: fix spurious test_signal failure on Windows

signal.getsignal returns None for some signals if faulthandler
is enabled (Patch by Jeremy Kloth)
This commit is contained in:
Nick Coghlan 2013-08-03 22:56:30 +10:00
parent e92dfbfec8
commit 60b3ac7482
2 changed files with 11 additions and 2 deletions

View File

@ -209,11 +209,17 @@ class WindowsSignalTests(unittest.TestCase):
def test_issue9324(self):
# Updated for issue #10003, adding SIGBREAK
handler = lambda x, y: None
checked = set()
for sig in (signal.SIGABRT, signal.SIGBREAK, signal.SIGFPE,
signal.SIGILL, signal.SIGINT, signal.SIGSEGV,
signal.SIGTERM):
# Set and then reset a handler for signals that work on windows
signal.signal(sig, signal.signal(sig, handler))
# Set and then reset a handler for signals that work on windows.
# Issue #18396, only for signals without a C-level handler.
if signal.getsignal(sig) is not None:
signal.signal(sig, signal.signal(sig, handler))
checked.add(sig)
# Issue #18396: Ensure the above loop at least tested *something*
self.assertTrue(checked)
with self.assertRaises(ValueError):
signal.signal(-1, handler)

View File

@ -230,6 +230,9 @@ IDLE
Tests
-----
- Issue #18396: Fix spurious test failure in test_signal on Windows when
faulthandler is enabled (Patch by Jeremy Kloth)
- Issue #17046: Fix broken test_executable_without_cwd in test_subprocess.
- Issue #15415: Add new temp_dir() and change_cwd() context managers to