Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r94222:fb6f7b8f2635
Date: 2018-04-03 11:30 +0200
http://bitbucket.org/pypy/pypy/changeset/fb6f7b8f2635/

Log:    Issue #2780

        Ignore any non-keyword args in signal.default_int_handler()

diff --git a/pypy/module/signal/interp_signal.py 
b/pypy/module/signal/interp_signal.py
--- a/pypy/module/signal/interp_signal.py
+++ b/pypy/module/signal/interp_signal.py
@@ -166,13 +166,14 @@
     return handlers_w[signum]
 
 
-def default_int_handler(space, w_signum, w_frame):
+def default_int_handler(space, args_w):
     """
     default_int_handler(...)
 
     The default handler for SIGINT installed by Python.
     It raises KeyboardInterrupt.
     """
+    # issue #2780: accept and ignore any non-keyword arguments
     raise OperationError(space.w_KeyboardInterrupt, space.w_None)
 
 
diff --git a/pypy/module/signal/test/test_signal.py 
b/pypy/module/signal/test/test_signal.py
--- a/pypy/module/signal/test/test_signal.py
+++ b/pypy/module/signal/test/test_signal.py
@@ -260,6 +260,17 @@
         finally:
             signal.signal(signum, oldhandler)
 
+    def test_default_int_handler(self):
+        import signal
+        for args in [(), (1, 2)]:
+            try:
+                signal.default_int_handler(*args)
+            except KeyboardInterrupt:
+                pass
+            else:
+                raise AssertionError("did not raise!")
+
+
 class AppTestSignalSocket:
     spaceconfig = dict(usemodules=['signal', '_socket'])
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to