config: clarify a bit of code in `_importconftest`
This commit is contained in:
parent
368fa2c03e
commit
35a3863b15
|
@ -638,9 +638,16 @@ class PytestPluginManager(PluginManager):
|
||||||
if existing is not None:
|
if existing is not None:
|
||||||
return cast(types.ModuleType, existing)
|
return cast(types.ModuleType, existing)
|
||||||
|
|
||||||
|
# conftest.py files there are not in a Python package all have module
|
||||||
|
# name "conftest", and thus conflict with each other. Clear the existing
|
||||||
|
# before loading the new one, otherwise the existing one will be
|
||||||
|
# returned from the module cache.
|
||||||
pkgpath = resolve_package_path(conftestpath)
|
pkgpath = resolve_package_path(conftestpath)
|
||||||
if pkgpath is None:
|
if pkgpath is None:
|
||||||
_ensure_removed_sysmodule(conftestpath.stem)
|
try:
|
||||||
|
del sys.modules[conftestpath.stem]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
mod = import_path(conftestpath, mode=importmode, root=rootpath)
|
mod = import_path(conftestpath, mode=importmode, root=rootpath)
|
||||||
|
@ -818,13 +825,6 @@ def _get_plugin_specs_as_list(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _ensure_removed_sysmodule(modname: str) -> None:
|
|
||||||
try:
|
|
||||||
del sys.modules[modname]
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Notset:
|
class Notset:
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<NOTSET>"
|
return "<NOTSET>"
|
||||||
|
|
Loading…
Reference in New Issue