summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/__init__.py6
-rw-r--r--test/test_api.py49
-rw-r--r--test/test_coverage.py2
3 files changed, 32 insertions, 25 deletions
diff --git a/coverage/__init__.py b/coverage/__init__.py
index 777d451b..a81f61ac 100644
--- a/coverage/__init__.py
+++ b/coverage/__init__.py
@@ -17,8 +17,10 @@ from coverage.misc import CoverageException
# Module-level functions. The original API to this module was based on
# functions defined directly in the module, with a singleton of the coverage()
-# class. That design hampered programmability. Here we define the top-level
-# functions to create the singleton when they are first called.
+# class. That design hampered programmability, so the current api uses
+# explicitly-created coverage objects. But for backward compatibility, here we
+# define the top-level functions to create the singleton when they are first
+# called.
# Singleton object for use with module-level functions. The singleton is
# created as needed when one of the module-level functions is called.
diff --git a/test/test_api.py b/test/test_api.py
index eeeccfd5..60d248e9 100644
--- a/test/test_api.py
+++ b/test/test_api.py
@@ -8,53 +8,56 @@ from coverage.backward import StringIO
sys.path.insert(0, os.path.split(__file__)[0]) # Force relative import for Py3k
from coveragetest import CoverageTest
-# This file uses the singleton module interface. Prevent it from writing
-# .coverage files at exit.
-coverage.use_cache(0)
-class ApiTest(CoverageTest):
- """Api-oriented tests for Coverage."""
+class SingletonApiTest(CoverageTest):
+ """Tests of the old-fashioned singleton API."""
- def testSimple(self):
+ def setUp(self):
+ super(SingletonApiTest, self).setUp()
+ # These tests use the singleton module interface. Prevent it from
+ # writing .coverage files at exit.
+ coverage.use_cache(0)
+
+ def doReportWork(self, modname):
+ """Create a module named `modname`, then measure it."""
coverage.erase()
- self.make_file("mycode.py", """\
+ self.make_file(modname+".py", """\
a = 1
b = 2
if b == 3:
c = 4
- d = 5
+ d = 5
+ e = 6
+ f = 7
""")
# Import the python file, executing it.
coverage.start()
- self.import_module("mycode") # pragma: recursive coverage
+ self.import_module(modname) # pragma: recursive coverage
coverage.stop() # pragma: recursive coverage
- _, statements, missing, missingtext = coverage.analysis("mycode.py")
- self.assertEqual(statements, [1,2,3,4,5])
- self.assertEqual(missing, [4])
- self.assertEqual(missingtext, "4")
-
- def doReportWork(self, modname):
- """Create a module named `modname`, then measure it."""
+ def testSimple(self):
coverage.erase()
- self.make_file(modname+".py", """\
+ self.make_file("mycode.py", """\
a = 1
b = 2
if b == 3:
c = 4
- d = 5
- e = 6
- f = 7
+ d = 5
""")
# Import the python file, executing it.
coverage.start()
- self.import_module(modname) # pragma: recursive coverage
+ self.import_module("mycode") # pragma: recursive coverage
coverage.stop() # pragma: recursive coverage
+ _, statements, missing, missingtext = coverage.analysis("mycode.py")
+ self.assertEqual(statements, [1,2,3,4,5])
+ self.assertEqual(missing, [4])
+ self.assertEqual(missingtext, "4")
+
def testReport(self):
self.doReportWork("mycode2")
coverage.report(["mycode2.py"])
@@ -83,6 +86,10 @@ class ApiTest(CoverageTest):
rpt = re.sub(r"\s+", " ", self.stdout())
self.assertTrue("mycode4 7 3 57% 4-6" in rpt)
+
+class ApiTest(CoverageTest):
+ """Api-oriented tests for Coverage."""
+
def testUnexecutedFile(self):
cov = coverage.coverage()
diff --git a/test/test_coverage.py b/test/test_coverage.py
index 27bfffca..a9a478a9 100644
--- a/test/test_coverage.py
+++ b/test/test_coverage.py
@@ -4,8 +4,6 @@
import os, sys
import coverage
-coverage.use_cache(0)
-
from coverage.misc import CoverageException
sys.path.insert(0, os.path.split(__file__)[0]) # Force relative import for Py3k