diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-12-19 14:53:19 +0000 |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-12-19 14:53:19 +0000 |
commit | a17f076f614222cec6ff415c940717ecbbddd9fe (patch) | |
tree | 4efd1476bda09dfe0a3fbf9120bd9f953451c2b0 /Lib/unittest/case.py | |
parent | 5657ff8aa0aa9d53f92fc11cc2d4b7e23f5cb95a (diff) | |
download | cpython-git-a17f076f614222cec6ff415c940717ecbbddd9fe.tar.gz |
Issue 10611. SystemExit should not cause a unittest test run to exit.
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 |