提交 28b0fd35 编写于 作者: I Ilan Schnell

add allow_error parameter to .run() method

上级 87a6bbec
......@@ -533,6 +533,10 @@ class PipTestEnvironment(TestFileEnvironment):
`allow_stderr_warning` since warnings are weaker than errors.
:param allow_stderr_warning: whether a logged warning (or
deprecation message) is allowed in stderr.
:param allow_error: if True (default is False) does not raise
exception when the command exit value is non-zero. Implies
expect_error, but in contrast to expect_error will not assert
that the exit value is zero.
:param expect_error: if False (the default), asserts that the command
exits with 0. Otherwise, asserts that the command exits with a
non-zero exit code. Passing True also implies allow_stderr_error
......@@ -553,10 +557,14 @@ class PipTestEnvironment(TestFileEnvironment):
# Partial fix for ScriptTest.run using `shell=True` on Windows.
args = [str(a).replace('^', '^^').replace('&', '^&') for a in args]
# Remove `allow_stderr_error` and `allow_stderr_warning` before
# calling run() because PipTestEnvironment doesn't support them.
# Remove `allow_stderr_error`, `allow_stderr_warning` and
# `allow_error` before calling run() because PipTestEnvironment
# doesn't support them.
allow_stderr_error = kw.pop('allow_stderr_error', None)
allow_stderr_warning = kw.pop('allow_stderr_warning', None)
allow_error = kw.pop('allow_error', None)
if allow_error:
kw['expect_error'] = True
# Propagate default values.
expect_error = kw.get('expect_error')
......@@ -596,7 +604,7 @@ class PipTestEnvironment(TestFileEnvironment):
kw['expect_stderr'] = True
result = super(PipTestEnvironment, self).run(cwd=cwd, *args, **kw)
if expect_error:
if expect_error and not allow_error:
if result.returncode == 0:
__tracebackhide__ = True
raise AssertionError("Script passed unexpectedly.")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册