summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Unterwaditzer <markus@unterwaditzer.net>2017-02-25 16:07:53 +0100
committerMarkus Unterwaditzer <markus@unterwaditzer.net>2017-02-25 16:07:53 +0100
commitbbcac04992e1e807604d600d806830cca2b175d8 (patch)
tree904a8e7a891408b80e6012e70bc85a4c922ec05c
parent8d9dd469e38ede1ee3bf23e1a80a0711c8792387 (diff)
parent3dfbb984214ff86e35b27672e37b9889eba71004 (diff)
downloadclick-bbcac04992e1e807604d600d806830cca2b175d8.tar.gz
Merge branch '6.x-maintenance'
-rw-r--r--.gitignore2
-rw-r--r--CHANGES1
-rw-r--r--click/testing.py14
3 files changed, 12 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 3ec9ade..d140f6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,5 @@ build
docs/_build
click.egg-info
.tox
+.cache
+.ropeproject
diff --git a/CHANGES b/CHANGES
index 6fabe36..596bfb1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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()