diff options
Diffstat (limited to 'Lib/unittest/case.py')
-rw-r--r-- | Lib/unittest/case.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 3940daa4c4..33ab47a4b5 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -311,11 +311,15 @@ class TestCase(object): self.setUp() except SkipTest as e: self._addSkip(result, str(e)) - except Exception: + except KeyboardInterrupt: + raise + except: result.addError(self, sys.exc_info()) else: try: testMethod() + except KeyboardInterrupt: + raise except self.failureException: result.addFailure(self, sys.exc_info()) except _ExpectedFailure as e: @@ -336,14 +340,16 @@ class TestCase(object): result.addFailure(self, sys.exc_info()) except SkipTest as e: self._addSkip(result, str(e)) - except Exception: + except: result.addError(self, sys.exc_info()) else: success = True try: self.tearDown() - except Exception: + except KeyboardInterrupt: + raise + except: result.addError(self, sys.exc_info()) success = False @@ -367,7 +373,9 @@ class TestCase(object): function, args, kwargs = self._cleanups.pop(-1) try: function(*args, **kwargs) - except Exception: + except KeyboardInterrupt: + raise + except: ok = False result.addError(self, sys.exc_info()) return ok |