From: Guido van Rossum Date: Fri, 7 Dec 2001 03:39:34 +0000 (+0000) Subject: In unconditional except clauses, don't catch KeyboardInterrupt -- it's X-Git-Tag: v2.2.1c1~491 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=202dd1ef420359c05814cbfcc5c27e71c90c16d9;p=python In unconditional except clauses, don't catch KeyboardInterrupt -- it's annoying that often you have to hit ^C numerous times before it works. The solution: before the "except:" clause, insert "except KeyboardInterrupt: raise". This propagates KeyboardInterrupt out, stopping the test in its tracks. --- diff --git a/Lib/unittest.py b/Lib/unittest.py index 7de4d6c63c..3f59916760 100644 --- a/Lib/unittest.py +++ b/Lib/unittest.py @@ -202,6 +202,8 @@ class TestCase: try: try: self.setUp() + except KeyboardInterrupt: + raise except: result.addError(self, self.__exc_info()) return @@ -212,11 +214,15 @@ class TestCase: ok = 1 except self.failureException, e: result.addFailure(self, self.__exc_info()) + except KeyboardInterrupt: + raise except: result.addError(self, self.__exc_info()) try: self.tearDown() + except KeyboardInterrupt: + raise except: result.addError(self, self.__exc_info()) ok = 0