summaryrefslogtreecommitdiff
path: root/tests/test_api.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-05-08 08:25:46 -0400
committerNed Batchelder <ned@nedbatchelder.com>2016-05-08 08:25:46 -0400
commitb918987030fadd52f47cb8b2067e54c59a73d794 (patch)
tree8c0a85e120b165218bdc90398f92612ec49ad9c5 /tests/test_api.py
parent36d94fb250dcc838a0fd8f83bb8a6ad53665cb37 (diff)
downloadpython-coveragepy-git-b918987030fadd52f47cb8b2067e54c59a73d794.tar.gz
Don't get confused by namespace packages #456
Diffstat (limited to 'tests/test_api.py')
-rw-r--r--tests/test_api.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_api.py b/tests/test_api.py
index 3ea5b3ef..4c038519 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -9,6 +9,7 @@ import sys
import textwrap
import coverage
+from coverage import env
from coverage.backward import StringIO
from coverage.misc import CoverageException
@@ -322,6 +323,26 @@ class ApiTest(CoverageTest):
self.assert_exists(".coverage.foo")
+class NamespaceModuleTest(CoverageTest):
+ """Test PEP-420 namespace modules."""
+
+ def setUp(self):
+ super(NamespaceModuleTest, self).setUp()
+ if env.PYVERSION < (3, 3):
+ self.skip("Python before 3.3 doesn't have namespace packages")
+
+ def test_explicit_namespace_module(self):
+ self.make_file("namespace/package/module.py", "VAR = 1\n")
+ self.make_file("main.py", "import namespace\n")
+
+ cov = coverage.Coverage()
+ self.start_import_stop(cov, "main")
+
+ with self.assertRaisesRegex(CoverageException, r"Module .* has no file"):
+ cov.analysis(sys.modules['namespace'])
+
+
+
class UsingModulesMixin(object):
"""A mixin for importing modules from test/modules and test/moremodules."""