Merge pull request #2184 from eli-b/parseoutcomes-explicit-failure
Fail assert_outcomes() on missing terminal report
This commit is contained in:
commit
7b4368f3f4
1
AUTHORS
1
AUTHORS
|
@ -141,3 +141,4 @@ Tyler Goodlet
|
|||
Vasily Kuznetsov
|
||||
Wouter van Ackooy
|
||||
Xuecong Liao
|
||||
Eli Boyarski
|
||||
|
|
|
@ -18,11 +18,15 @@
|
|||
subdirectories with ini configuration files now uses the correct ini file
|
||||
(`#2148`_). Thanks `@pelme`_.
|
||||
|
||||
* Fail ``testdir.runpytest().assert_outcomes()`` explicitly if the pytest
|
||||
terminal output it relies on is missing. Thanks to `@eli-b`_ for the PR.
|
||||
|
||||
*
|
||||
|
||||
.. _@lesteve: https://github.com/lesteve
|
||||
.. _@malinoff: https://github.com/malinoff
|
||||
.. _@pelme: https://github.com/pelme
|
||||
.. _@eli-b: https://github.com/eli-b
|
||||
|
||||
.. _#2129: https://github.com/pytest-dev/pytest/issues/2129
|
||||
.. _#2148: https://github.com/pytest-dev/pytest/issues/2148
|
||||
|
|
|
@ -367,6 +367,7 @@ class RunResult:
|
|||
for num, cat in outcomes:
|
||||
d[cat] = int(num)
|
||||
return d
|
||||
raise ValueError("Pytest terminal report not found")
|
||||
|
||||
def assert_outcomes(self, passed=0, skipped=0, failed=0):
|
||||
""" assert that the specified outcomes appear with the respective
|
||||
|
|
|
@ -124,3 +124,10 @@ def test_inline_run_clean_modules(testdir):
|
|||
test_mod.write("def test_foo(): assert False")
|
||||
result2 = testdir.inline_run(str(test_mod))
|
||||
assert result2.ret == EXIT_TESTSFAILED
|
||||
|
||||
def test_assert_outcomes_after_pytest_erro(testdir):
|
||||
testdir.makepyfile("def test_foo(): assert True")
|
||||
|
||||
result = testdir.runpytest('--unexpected-argument')
|
||||
with pytest.raises(ValueError, message="Pytest terminal report not found"):
|
||||
result.assert_outcomes(passed=0)
|
||||
|
|
Loading…
Reference in New Issue