summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2019-03-13 13:58:10 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2019-03-13 13:58:10 +0100
commit6c71973462f0c1768f99660a112ba14f3714e082 (patch)
tree2431036a088b3a7449d30bf55a2cb8bf871abad3
parentd8066a0305616d6981f26c00366d07ae3e6588a7 (diff)
downloadpsutil-6c71973462f0c1768f99660a112ba14f3714e082.tar.gz
test runner: show errors on KeyboardInterrupt
-rw-r--r--HISTORY.rst6
-rw-r--r--psutil/__init__.py2
-rwxr-xr-xpsutil/tests/runner.py21
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)