Add a `deselected` parameter to `assert_outcomes()`

This commit is contained in:
Brian Okken 2021-09-29 07:22:53 -07:00
parent 7720154ca0
commit 6d6cfd839a
4 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,2 @@
:class:`RunResult <_pytest.pytester.RunResult>` method :meth:`assert_outcomes <_pytest.pytester.RunResult.assert_outcomes>` now accepts a
``deselected`` argument to assert the total number of deselected tests.

View File

@ -589,6 +589,7 @@ class RunResult:
xpassed: int = 0,
xfailed: int = 0,
warnings: int = 0,
deselected: int = 0,
) -> None:
"""Assert that the specified outcomes appear with the respective
numbers (0 means it didn't occur) in the text output from a test run."""
@ -605,6 +606,7 @@ class RunResult:
xpassed=xpassed,
xfailed=xfailed,
warnings=warnings,
deselected=deselected,
)

View File

@ -43,6 +43,7 @@ def assert_outcomes(
xpassed: int = 0,
xfailed: int = 0,
warnings: int = 0,
deselected: int = 0,
) -> None:
"""Assert that the specified outcomes appear with the respective
numbers (0 means it didn't occur) in the text output from a test run."""
@ -56,6 +57,7 @@ def assert_outcomes(
"xpassed": outcomes.get("xpassed", 0),
"xfailed": outcomes.get("xfailed", 0),
"warnings": outcomes.get("warnings", 0),
"deselected": outcomes.get("deselected", 0),
}
expected = {
"passed": passed,
@ -65,5 +67,6 @@ def assert_outcomes(
"xpassed": xpassed,
"xfailed": xfailed,
"warnings": warnings,
"deselected": deselected,
}
assert obtained == expected

View File

@ -861,3 +861,17 @@ def test_pytester_assert_outcomes_warnings(pytester: Pytester) -> None:
)
result = pytester.runpytest()
result.assert_outcomes(passed=1, warnings=1)
def test_pytester_outcomes_deselected(pytester: Pytester) -> None:
pytester.makepyfile(
"""
def test_one():
pass
def test_two():
pass
"""
)
result = pytester.runpytest("-k", "test_one")
result.assert_outcomes(passed=1, deselected=1)