From dae4972b4d0d88f539532829cf143a98b20d0d45 Mon Sep 17 00:00:00 2001 From: Karen Tracey Date: Thu, 31 Dec 2009 19:52:26 +0000 Subject: [PATCH] Ensure the default keyboard interrupt handler is restored even if the test runner raises an exception. Thanks Alex Gaynor. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12036 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/test/simple.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/django/test/simple.py b/django/test/simple.py index 7610e1cb2c..b01ecad7f4 100644 --- a/django/test/simple.py +++ b/django/test/simple.py @@ -27,8 +27,10 @@ class DjangoTestRunner(unittest.TextTestRunner): """ self._default_keyboard_interrupt_handler = signal.signal(signal.SIGINT, self._keyboard_interrupt_handler) - result = super(DjangoTestRunner, self).run(*args, **kwargs) - signal.signal(signal.SIGINT, self._default_keyboard_interrupt_handler) + try: + result = super(DjangoTestRunner, self).run(*args, **kwargs) + finally: + signal.signal(signal.SIGINT, self._default_keyboard_interrupt_handler) return result def _keyboard_interrupt_handler(self, signal_number, stack_frame):