8000 bpo-36406: Handle namespace packages in doctest (GH-12520) (GH-17592) · python/cpython@d321203 · GitHub
[go: up one dir, main page]

Skip to content

Commit d321203

Browse files
miss-islingtontirkarthi
authored andcommitted
bpo-36406: Handle namespace packages in doctest (GH-12520) (GH-17592)
(cherry picked from commit 8289e27) Co-authored-by: Xtreak <tir.karthi@gmail.com>
1 parent 0ed45d0 commit d321203

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

Lib/doctest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1059,7 +1059,8 @@ def _get_test(self, obj, name, module, globs, source_lines):
10591059
if module is None:
10601060
filename = None
10611061
else:
1062-
filename = getattr(module, '__file__', module.__name__)
1062+
# __file__ can be None for namespace packages.
1063+
filename = getattr(module, '__file__', None) or module.__name__
10631064
if filename[-4:] == ".pyc":
10641065
filename = filename[:-1]
10651066
return self._parser.get_doctest(docstring, globs, name,

Lib/test/test_doctest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,8 +697,12 @@ def test_empty_namespace_package(self):
697697
finally:
698698
support.forget(pkg_name)
699699
sys.path.pop()
700-
assert doctest.DocTestFinder().find(mod) == []
701700

701+
include_empty_finder = doctest.DocTestFinder(exclude_empty=False)
702+
exclude_empty_finder = doctest.DocTestFinder(exclude_empty=True)
703+
704+
self.assertEqual(len(include_empty_finder.find(mod)), 1)
705+
self.assertEqual(len(exclude_empty_finder.find(mod)), 0)
702706

703707
def test_DocTestParser(): r"""
704708
Unit tests for the `DocTestParser` class.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Handle namespace packages in :mod:`doctest`. Patch by Karthikeyan Singaravelan.

0 commit comments

Comments
 (0)
0