diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2010-06-18 20:45:20 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2010-06-18 20:45:20 -0400 |
commit | 2d939aec11b6d75b336c3e39cd53e221b40d854b (patch) | |
tree | 88b304c312728bc405eaa89c6b6dc16749806b55 | |
parent | 60173665a4c9711455887e4879d75b062399f549 (diff) | |
download | python-coveragepy-git-2d939aec11b6d75b336c3e39cd53e221b40d854b.tar.gz |
Isolate old-style singleton api tests.
-rw-r--r-- | coverage/__init__.py | 6 | ||||
-rw-r--r-- | test/test_api.py | 49 | ||||
-rw-r--r-- | test/test_coverage.py | 2 |
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 |