summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-12-13 15:30:04 -0800
committerBrett Cannon <54418+brettcannon@users.noreply.github.com>2019-12-13 15:30:04 -0800
commitd3212036aa2510b9e133ba4bfaf1262d6bcbe7f0 (patch)
tree76fd2105dff1a191c24f61f54f89498d7e15fedc
parent0ed45d0cbfc7579dfc5527c19aa6e4bb696db2e0 (diff)
downloadcpython-git-d3212036aa2510b9e133ba4bfaf1262d6bcbe7f0.tar.gz
bpo-36406: Handle namespace packages in doctest (GH-12520) (GH-17592)
(cherry picked from commit 8289e27393395ee903bd096d42e07c112d7f15c6) Co-authored-by: Xtreak <tir.karthi@gmail.com>
-rw-r--r--Lib/doctest.py3
-rw-r--r--Lib/test/test_doctest.py6
-rw-r--r--Misc/NEWS.d/next/Library/2019-03-24-12-12-27.bpo-36406.mCEkOl.rst1
3 files changed, 8 insertions, 2 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 79d91a040c..2a4b8c7dae 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -1059,7 +1059,8 @@ class DocTestFinder:
if module is None:
filename = None
else:
- filename = getattr(module, '__file__', module.__name__)
+ # __file__ can be None for namespace packages.
+ filename = getattr(module, '__file__', None) or module.__name__
if filename[-4:] == ".pyc":
filename = filename[:-1]
return self._parser.get_doctest(docstring, globs, name,
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 4a3c488738..5f891c50d8 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -697,8 +697,12 @@ class TestDocTestFinder(unittest.TestCase):
finally:
support.forget(pkg_name)
sys.path.pop()
- assert doctest.DocTestFinder().find(mod) == []
+ include_empty_finder = doctest.DocTestFinder(exclude_empty=False)
+ exclude_empty_finder = doctest.DocTestFinder(exclude_empty=True)
+
+ self.assertEqual(len(include_empty_finder.find(mod)), 1)
+ self.assertEqual(len(exclude_empty_finder.find(mod)), 0)
def test_DocTestParser(): r"""
Unit tests for the `DocTestParser` class.
diff --git a/Misc/NEWS.d/next/Library/2019-03-24-12-12-27.bpo-36406.mCEkOl.rst b/Misc/NEWS.d/next/Library/2019-03-24-12-12-27.bpo-36406.mCEkOl.rst
new file mode 100644
index 0000000000..3d81eb5041
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-03-24-12-12-27.bpo-36406.mCEkOl.rst
@@ -0,0 +1 @@
+Handle namespace packages in :mod:`doctest`. Patch by Karthikeyan Singaravelan.