diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2019-03-13 13:58:10 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2019-03-13 13:58:10 +0100 |
commit | 6c71973462f0c1768f99660a112ba14f3714e082 (patch) | |
tree | 2431036a088b3a7449d30bf55a2cb8bf871abad3 | |
parent | d8066a0305616d6981f26c00366d07ae3e6588a7 (diff) | |
download | psutil-6c71973462f0c1768f99660a112ba14f3714e082.tar.gz |
test runner: show errors on KeyboardInterrupt
-rw-r--r-- | HISTORY.rst | 6 | ||||
-rw-r--r-- | psutil/__init__.py | 2 | ||||
-rwxr-xr-x | psutil/tests/runner.py | 21 |
3 files changed, 25 insertions, 4 deletions
diff --git a/HISTORY.rst b/HISTORY.rst index 2d1fbee5..cd71108d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,5 +1,11 @@ *Bug tracker at https://github.com/giampaolo/psutil/issues* +5.6.2 +===== + +**Enhancements** + +- 1458_: provide coloured test output. Also show failures on KeyboardInterrupt. 5.6.1 ===== diff --git a/psutil/__init__.py b/psutil/__init__.py index bd0d5e4d..9c6bf2bd 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -217,7 +217,7 @@ __all__ = [ __all__.extend(_psplatform.__extra__all__) __author__ = "Giampaolo Rodola'" -__version__ = "5.6.1" +__version__ = "5.6.2" version_info = tuple([int(num) for num in __version__.split('.')]) _timer = getattr(time, 'monotonic', time.time) diff --git a/psutil/tests/runner.py b/psutil/tests/runner.py index f555e4b0..c009e258 100755 --- a/psutil/tests/runner.py +++ b/psutil/tests/runner.py @@ -8,6 +8,7 @@ Unit test runner, providing colourized output. """ +from __future__ import print_function import os import sys import unittest @@ -80,6 +81,13 @@ class ColouredResult(unittest.TextTestResult): class ColouredRunner(TextTestRunner): resultclass = ColouredResult if term_supports_colors() else TextTestResult + def _makeResult(self): + # Store result instance so that it can be accessed on + # KeyboardInterrupt. + self.result = self.resultclass( + self.stream, self.descriptions, self.verbosity) + return self.result + def setup_tests(): if 'PSUTIL_TESTING' not in os.environ: @@ -109,6 +117,13 @@ def get_suite(name=None): def run(name=None): setup_tests() - result = ColouredRunner(verbosity=VERBOSITY).run(get_suite(name)) - success = result.wasSuccessful() - sys.exit(0 if success else 1) + runner = ColouredRunner(verbosity=VERBOSITY) + try: + result = runner.run(get_suite(name)) + except (SystemExit, KeyboardInterrupt): + print("received KeyboardInterrupt", file=sys.stderr) + runner.result.printErrors() + sys.exit(1) + else: + success = result.wasSuccessful() + sys.exit(0 if success else 1) |