Skip to content

Commit

Permalink
Merge pull request #10092 from pytest-dev/backport-10088-to-7.1.x
Browse files Browse the repository at this point in the history
[7.1.x] Pass importmode to import_path in DoctestModule
  • Loading branch information
asottile authored Jun 30, 2022
2 parents ec055cf + 549e313 commit 3a975e8
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Alan Velasco
Alexander Johnson
Alexander King
Alexei Kozlenok
Alice Purcell
Allan Feldman
Aly Sivji
Amir Elkess
Expand Down
1 change: 1 addition & 0 deletions changelog/3396.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Doctests now respect the ``--import-mode`` flag.
6 changes: 5 additions & 1 deletion src/_pytest/doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,11 @@ def _find(
)
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)
Expand Down
22 changes: 22 additions & 0 deletions testing/test_doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,28 @@ def test_simple_doctestfile(self, pytester: Pytester):
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="""
Expand Down

0 comments on commit 3a975e8

Please sign in to comment.