Pass importmode to import_path in DoctestModule
This allows doctest to be used with namespace modules
This commit is contained in:
parent
06738e36df
commit
c34eaaaa1c
|
@ -0,0 +1 @@
|
|||
Doctests now respect the ``--import-mode`` flag.
|
|
@ -542,7 +542,11 @@ class DoctestModule(pytest.Module):
|
|||
)
|
||||
else:
|
||||
try:
|
||||
module = import_path(self.path, root=self.config.rootpath)
|
||||
module = import_path(
|
||||
self.path,
|
||||
root=self.config.rootpath,
|
||||
mode=self.config.getoption("importmode"),
|
||||
)
|
||||
except ImportError:
|
||||
if self.config.getvalue("doctest_ignore_import_errors"):
|
||||
pytest.skip("unable to import module %r" % self.path)
|
||||
|
|
|
@ -113,6 +113,28 @@ class TestDoctests:
|
|||
reprec = pytester.inline_run(p)
|
||||
reprec.assertoutcome(failed=1)
|
||||
|
||||
def test_importmode(self, pytester: Pytester):
|
||||
p = pytester.makepyfile(
|
||||
**{
|
||||
"namespacepkg/innerpkg/__init__.py": "",
|
||||
"namespacepkg/innerpkg/a.py": """
|
||||
def some_func():
|
||||
return 42
|
||||
""",
|
||||
"namespacepkg/innerpkg/b.py": """
|
||||
from namespacepkg.innerpkg.a import some_func
|
||||
def my_func():
|
||||
'''
|
||||
>>> my_func()
|
||||
42
|
||||
'''
|
||||
return some_func()
|
||||
""",
|
||||
}
|
||||
)
|
||||
reprec = pytester.inline_run(p, "--doctest-modules", "--import-mode=importlib")
|
||||
reprec.assertoutcome(passed=1)
|
||||
|
||||
def test_new_pattern(self, pytester: Pytester):
|
||||
p = pytester.maketxtfile(
|
||||
xdoc="""
|
||||
|
|
Loading…
Reference in New Issue