XXX: revert _collect_seen_pkgdirs

This commit is contained in:
Daniel Hahler 2018-11-07 11:01:39 +01:00
parent fa35f650b5
commit 134b103605
2 changed files with 16 additions and 4 deletions

View File

@ -387,7 +387,6 @@ class Session(nodes.FSCollector):
self._initialpaths = frozenset() self._initialpaths = frozenset()
# Keep track of any collected nodes in here, so we don't duplicate fixtures # Keep track of any collected nodes in here, so we don't duplicate fixtures
self._node_cache = {} self._node_cache = {}
self._collect_seen_pkgdirs = set()
self.config.pluginmanager.register(self, name="session") self.config.pluginmanager.register(self, name="session")
@ -505,7 +504,6 @@ class Session(nodes.FSCollector):
if parent.isdir(): if parent.isdir():
pkginit = parent.join("__init__.py") pkginit = parent.join("__init__.py")
if pkginit.isfile(): if pkginit.isfile():
self._collect_seen_pkgdirs.add(parent)
if pkginit in self._node_cache: if pkginit in self._node_cache:
root = self._node_cache[pkginit][0] root = self._node_cache[pkginit][0]
else: else:
@ -531,12 +529,13 @@ class Session(nodes.FSCollector):
def filter_(f): def filter_(f):
return f.check(file=1) return f.check(file=1)
seen_dirs = set()
for path in argpath.visit( for path in argpath.visit(
fil=filter_, rec=self._recurse, bf=True, sort=True fil=filter_, rec=self._recurse, bf=True, sort=True
): ):
dirpath = path.dirpath() dirpath = path.dirpath()
if dirpath not in self._collect_seen_pkgdirs: if dirpath not in seen_dirs:
self._collect_seen_pkgdirs.add(dirpath) seen_dirs.add(dirpath)
pkginit = dirpath.join("__init__.py") pkginit = dirpath.join("__init__.py")
if pkginit.exists() and parts(pkginit.strpath).isdisjoint(paths): if pkginit.exists() and parts(pkginit.strpath).isdisjoint(paths):
for x in root._collectfile(pkginit): for x in root._collectfile(pkginit):

View File

@ -978,6 +978,19 @@ def test_collect_init_tests(testdir):
"<Package *", "<Package *",
" <Module '__init__.py'>", " <Module '__init__.py'>",
" <Function 'test_init'>", " <Function 'test_init'>",
"<Module 'tests/test_foo.py'>",
" <Function 'test_foo'>",
]
)
# XXX: Same as before, but different order.
result = testdir.runpytest(".", "tests", "--collect-only")
result.stdout.fnmatch_lines(
[
"collected 2 items",
"<Package *",
" <Module '__init__.py'>",
" <Function 'test_init'>",
"<Package *",
" <Module 'test_foo.py'>", " <Module 'test_foo.py'>",
" <Function 'test_foo'>", " <Function 'test_foo'>",
] ]