diff options
author | Markus Unterwaditzer <markus@unterwaditzer.net> | 2017-02-25 16:07:53 +0100 |
---|---|---|
committer | Markus Unterwaditzer <markus@unterwaditzer.net> | 2017-02-25 16:07:53 +0100 |
commit | bbcac04992e1e807604d600d806830cca2b175d8 (patch) | |
tree | 904a8e7a891408b80e6012e70bc85a4c922ec05c | |
parent | 8d9dd469e38ede1ee3bf23e1a80a0711c8792387 (diff) | |
parent | 3dfbb984214ff86e35b27672e37b9889eba71004 (diff) | |
download | click-bbcac04992e1e807604d600d806830cca2b175d8.tar.gz |
Merge branch '6.x-maintenance'
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | click/testing.py | 14 |
3 files changed, 12 insertions, 5 deletions
@@ -8,3 +8,5 @@ build docs/_build click.egg-info .tox +.cache +.ropeproject @@ -27,6 +27,7 @@ Version 6.8 - Disabled sys._getframes() on Python interpreters that don't support it. See #728. +- Fix bug in test runner when calling ``sys.exit`` with ``None``. See #739. Version 6.7 ----------- diff --git a/click/testing.py b/click/testing.py index 09d37a7..ae36d10 100644 --- a/click/testing.py +++ b/click/testing.py @@ -197,6 +197,7 @@ class CliRunner(object): return char default_color = color + def should_strip_ansi(stream=None, color=None): if color is None: return not default_color @@ -285,21 +286,24 @@ class CliRunner(object): cli.main(args=args or (), prog_name=self.get_default_prog_name(cli), **extra) except SystemExit as e: - if e.code != 0: - exception = e - exc_info = sys.exc_info() - exit_code = e.code + if exit_code is None: + exit_code = 0 + + if exit_code != 0: + exception = e + if not isinstance(exit_code, int): sys.stdout.write(str(exit_code)) sys.stdout.write('\n') exit_code = 1 + except Exception as e: if not catch_exceptions: raise exception = e - exit_code = -1 + exit_code = 1 exc_info = sys.exc_info() finally: sys.stdout.flush() |