summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-06-12 20:49:02 -0400
committerNed Batchelder <ned@nedbatchelder.com>2009-06-12 20:49:02 -0400
commit91ddf99e0d892517910acbab2c5edf147d1c2baa (patch)
tree9cb8c51eb8bed024a282137ea5358ce8b99202d3 /test
parentf68a3407dc3f1f9f69974837e9da623152c0f05e (diff)
downloadpython-coveragepy-git-91ddf99e0d892517910acbab2c5edf147d1c2baa.tar.gz
Get the flat_rootname right for nested CodeUnits. Thanks, Christian Heimes.
Diffstat (limited to 'test')
-rw-r--r--test/modules/aa/__init__.py1
-rw-r--r--test/modules/aa/afile.py1
-rw-r--r--test/modules/aa/bb/__init__.py1
-rw-r--r--test/modules/aa/bb/bfile.py1
-rw-r--r--test/modules/aa/bb/cc/__init__.py0
-rw-r--r--test/modules/aa/bb/cc/cfile.py1
-rw-r--r--test/test_codeunit.py60
7 files changed, 65 insertions, 0 deletions
diff --git a/test/modules/aa/__init__.py b/test/modules/aa/__init__.py
new file mode 100644
index 00000000..77593d8f
--- /dev/null
+++ b/test/modules/aa/__init__.py
@@ -0,0 +1 @@
+# aa
diff --git a/test/modules/aa/afile.py b/test/modules/aa/afile.py
new file mode 100644
index 00000000..3f0e38d1
--- /dev/null
+++ b/test/modules/aa/afile.py
@@ -0,0 +1 @@
+# afile.py
diff --git a/test/modules/aa/bb/__init__.py b/test/modules/aa/bb/__init__.py
new file mode 100644
index 00000000..ffbe6240
--- /dev/null
+++ b/test/modules/aa/bb/__init__.py
@@ -0,0 +1 @@
+# bb
diff --git a/test/modules/aa/bb/bfile.py b/test/modules/aa/bb/bfile.py
new file mode 100644
index 00000000..90875404
--- /dev/null
+++ b/test/modules/aa/bb/bfile.py
@@ -0,0 +1 @@
+# bfile.py
diff --git a/test/modules/aa/bb/cc/__init__.py b/test/modules/aa/bb/cc/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/modules/aa/bb/cc/__init__.py
diff --git a/test/modules/aa/bb/cc/cfile.py b/test/modules/aa/bb/cc/cfile.py
new file mode 100644
index 00000000..79764751
--- /dev/null
+++ b/test/modules/aa/bb/cc/cfile.py
@@ -0,0 +1 @@
+# cfile.py
diff --git a/test/test_codeunit.py b/test/test_codeunit.py
new file mode 100644
index 00000000..d03ff8d9
--- /dev/null
+++ b/test/test_codeunit.py
@@ -0,0 +1,60 @@
+"""Tests for coverage.codeunit"""
+
+import os, sys
+
+from coverage.codeunit import code_unit_factory
+from coverage.files import FileLocator
+from coveragetest import CoverageTest
+
+# pylint: disable-msg=F0401
+# Unable to import 'aa' (No module named aa)
+
+class CodeUnitTest(CoverageTest):
+ """Tests for coverage.codeunit"""
+
+ def setUp(self):
+ super(CodeUnitTest, self).setUp()
+ # Parent class saves and restores sys.path, we can just modify it.
+ testmods = self.nice_file(os.path.dirname(__file__), 'modules')
+ sys.path.append(testmods)
+
+ def test_filenames(self):
+ acu = code_unit_factory("aa/afile.py", FileLocator())
+ bcu = code_unit_factory("aa/bb/bfile.py", FileLocator())
+ ccu = code_unit_factory("aa/bb/cc/cfile.py", FileLocator())
+ self.assertEqual(acu[0].name, "aa/afile")
+ self.assertEqual(bcu[0].name, "aa/bb/bfile")
+ self.assertEqual(ccu[0].name, "aa/bb/cc/cfile")
+ self.assertEqual(acu[0].flat_rootname(), "aa_afile")
+ self.assertEqual(bcu[0].flat_rootname(), "aa_bb_bfile")
+ self.assertEqual(ccu[0].flat_rootname(), "aa_bb_cc_cfile")
+ self.assertEqual(acu[0].source_file().read(), "# afile.py\n")
+ self.assertEqual(bcu[0].source_file().read(), "# bfile.py\n")
+ self.assertEqual(ccu[0].source_file().read(), "# cfile.py\n")
+
+ def test_modules(self):
+ import aa, aa.bb, aa.bb.cc
+ cu = code_unit_factory([aa, aa.bb, aa.bb.cc], FileLocator())
+ self.assertEqual(cu[0].name, "aa")
+ self.assertEqual(cu[1].name, "aa.bb")
+ self.assertEqual(cu[2].name, "aa.bb.cc")
+ self.assertEqual(cu[0].flat_rootname(), "aa")
+ self.assertEqual(cu[1].flat_rootname(), "aa_bb")
+ self.assertEqual(cu[2].flat_rootname(), "aa_bb_cc")
+ self.assertEqual(cu[0].source_file().read(), "# aa\n")
+ self.assertEqual(cu[1].source_file().read(), "# bb\n")
+ self.assertEqual(cu[2].source_file().read(), "") # yes, empty
+
+ def test_module_files(self):
+ import aa.afile, aa.bb.bfile, aa.bb.cc.cfile
+ cu = code_unit_factory([aa.afile, aa.bb.bfile, aa.bb.cc.cfile],
+ FileLocator())
+ self.assertEqual(cu[0].name, "aa.afile")
+ self.assertEqual(cu[1].name, "aa.bb.bfile")
+ self.assertEqual(cu[2].name, "aa.bb.cc.cfile")
+ self.assertEqual(cu[0].flat_rootname(), "aa_afile")
+ self.assertEqual(cu[1].flat_rootname(), "aa_bb_bfile")
+ self.assertEqual(cu[2].flat_rootname(), "aa_bb_cc_cfile")
+ self.assertEqual(cu[0].source_file().read(), "# afile.py\n")
+ self.assertEqual(cu[1].source_file().read(), "# bfile.py\n")
+ self.assertEqual(cu[2].source_file().read(), "# cfile.py\n")