cacheprovider: fix file-skipping feature for files in packages
`--lf` has a feature where if a certain `Module` (python file) does not contain any failed tests, it is skipped entirely at the collector level instead of being collected and each item skipped individually. When this happens the collection summary looks like this: run-last-failure: rerun previous 1 failure (skipped 1 file) However, this feature didn't work for `Module`s inside of `Package`s, only for those directly beneath the `Session`. Fix #11054.
This commit is contained in:
parent
29d16d2939
commit
fc538c5766
|
@ -0,0 +1 @@
|
|||
Fixed ``--last-failed``'s "(skipped N files)" functionality for files inside of packages (directories with `__init__.py` files).
|
|
@ -219,7 +219,7 @@ class LFPluginCollWrapper:
|
|||
|
||||
@hookimpl(hookwrapper=True)
|
||||
def pytest_make_collect_report(self, collector: nodes.Collector):
|
||||
if isinstance(collector, Session):
|
||||
if isinstance(collector, (Session, Package)):
|
||||
out = yield
|
||||
res: CollectReport = out.get_result()
|
||||
|
||||
|
|
|
@ -420,7 +420,13 @@ class TestLastFailed:
|
|||
result = pytester.runpytest()
|
||||
result.stdout.fnmatch_lines(["*1 failed in*"])
|
||||
|
||||
def test_terminal_report_lastfailed(self, pytester: Pytester) -> None:
|
||||
@pytest.mark.parametrize("parent", ("session", "package"))
|
||||
def test_terminal_report_lastfailed(self, pytester: Pytester, parent: str) -> None:
|
||||
if parent == "package":
|
||||
pytester.makepyfile(
|
||||
__init__="",
|
||||
)
|
||||
|
||||
test_a = pytester.makepyfile(
|
||||
test_a="""
|
||||
def test_a1(): pass
|
||||
|
|
Loading…
Reference in New Issue