diff options
-rw-r--r-- | test/coveragetest.py | 26 | ||||
-rw-r--r-- | test/test_api.py | 52 | ||||
-rw-r--r-- | test/test_html.py | 24 | ||||
-rw-r--r-- | test/test_oddball.py | 8 | ||||
-rw-r--r-- | test/test_summary.py | 4 | ||||
-rw-r--r-- | test/test_xml.py | 8 |
6 files changed, 43 insertions, 79 deletions
diff --git a/test/coveragetest.py b/test/coveragetest.py index 4ae399cc..39ec4f56 100644 --- a/test/coveragetest.py +++ b/test/coveragetest.py @@ -212,6 +212,24 @@ class CoverageTest(TestCase): f.close() return mod + def start_import_stop(self, cov, modname): + """Start coverage, import a file, then stop coverage. + + `cov` is started and stopped, with an `import_local_file` of + `modname` in the middle. + + The imported module is returned. + + """ + cov.start() + try: # pragma: recursive coverage + # Import the python file, executing it. + mod = self.import_local_file(modname) + finally: # pragma: recursive coverage + # Stop Coverage. + cov.stop() + return mod + def get_module_name(self): """Return the module name to use for this test run.""" # We append self.n because otherwise two calls in one test will use the @@ -304,14 +322,8 @@ class CoverageTest(TestCase): cov.exclude(exc) for par in partials or []: cov.exclude(par, which='partial') - cov.start() - try: # pragma: recursive coverage - # Import the python file, executing it. - mod = self.import_local_file(modname) - finally: # pragma: recursive coverage - # Stop Coverage. - cov.stop() + mod = self.start_import_stop(cov, modname) # Clean up our side effects del sys.modules[modname] diff --git a/test/test_api.py b/test/test_api.py index c15db5ed..6a394f07 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -33,9 +33,7 @@ class SingletonApiTest(CoverageTest): """) # Import the python file, executing it. - coverage.start() - self.import_local_file(modname) # pragma: recursive coverage - coverage.stop() # pragma: recursive coverage + self.start_import_stop(coverage, modname) def test_simple(self): coverage.erase() @@ -49,9 +47,7 @@ class SingletonApiTest(CoverageTest): """) # Import the python file, executing it. - coverage.start() - self.import_local_file("mycode") # pragma: recursive coverage - coverage.stop() # pragma: recursive coverage + self.start_import_stop(coverage, "mycode") _, statements, missing, missingtext = coverage.analysis("mycode.py") self.assertEqual(statements, [1,2,3,4,5]) @@ -123,9 +119,7 @@ class ApiTest(CoverageTest): """) # Import the python file, executing it. - cov.start() - self.import_local_file("mycode") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "mycode") _, statements, missing, _ = cov.analysis("not_run.py") self.assertEqual(statements, [1]) @@ -144,9 +138,7 @@ class ApiTest(CoverageTest): # Import the python file, executing it. cov = coverage.coverage() - cov.start() - self.import_local_file("mymain") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "mymain") filename, _, _, _ = cov.analysis("mymain.py") self.assertEqual(os.path.basename(filename), "mymain.py") @@ -161,9 +153,7 @@ class ApiTest(CoverageTest): # Import the python file, executing it again, once it's been compiled # already. cov = coverage.coverage() - cov.start() - self.import_local_file("mymain") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "mymain") filename, _, _, _ = cov.analysis("mymain.py") self.assertEqual(os.path.basename(filename), "mymain.py") @@ -185,9 +175,7 @@ class ApiTest(CoverageTest): # Measure without the stdlib. cov1 = coverage.coverage() self.assertEqual(cov1.config.cover_pylib, False) - cov1.start() - self.import_local_file("mymain") # pragma: recursive coverage - cov1.stop() # pragma: recursive coverage + self.start_import_stop(cov1, "mymain") # some statements were marked executed in mymain.py _, statements, missing, _ = cov1.analysis("mymain.py") @@ -198,9 +186,7 @@ class ApiTest(CoverageTest): # Measure with the stdlib. cov2 = coverage.coverage(cover_pylib=True) - cov2.start() - self.import_local_file("mymain") # pragma: recursive coverage - cov2.stop() # pragma: recursive coverage + self.start_import_stop(cov2, "mymain") # some statements were marked executed in mymain.py _, statements, missing, _ = cov2.analysis("mymain.py") @@ -219,9 +205,7 @@ class ApiTest(CoverageTest): # Measure without the stdlib, but include colorsys. cov1 = coverage.coverage(cover_pylib=False, include=["*/colorsys.py"]) - cov1.start() - self.import_local_file("mymain") # pragma: recursive coverage - cov1.stop() # pragma: recursive coverage + self.start_import_stop(cov1, "mymain") # some statements were marked executed in colorsys.py _, statements, missing, _ = cov1.analysis("colorsys.py") @@ -283,9 +267,7 @@ class ApiTest(CoverageTest): self.assertFiles(["datatest1.py"]) cov = coverage.coverage() - cov.start() - self.import_local_file("datatest1") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "datatest1") cov.save() self.assertFiles(["datatest1.py", ".coverage"]) @@ -297,9 +279,7 @@ class ApiTest(CoverageTest): self.assertFiles(["datatest2.py"]) cov = coverage.coverage(data_file="cov.data") - cov.start() - self.import_local_file("datatest2") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "datatest2") cov.save() self.assertFiles(["datatest2.py", "cov.data"]) @@ -311,9 +291,7 @@ class ApiTest(CoverageTest): self.assertFiles(["datatest3.py"]) cov = coverage.coverage(data_file="cov.data", data_suffix="14") - cov.start() - self.import_local_file("datatest3") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "datatest3") cov.save() self.assertFiles(["datatest3.py", "cov.data.14"]) @@ -329,9 +307,7 @@ class ApiTest(CoverageTest): self.assertFiles(["datatest4.py", ".coveragerc"]) cov = coverage.coverage() - cov.start() - self.import_local_file("datatest4") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "datatest4") cov.save() self.assertFiles(["datatest4.py", ".coveragerc", "mydata.dat"]) @@ -501,9 +477,7 @@ class AnalysisTest(CoverageTest): """) # Import the python file, executing it. - cov.start() - self.import_local_file("missing") # pragma: recursive coverage - cov.stop() # pragma: recursive coverage + self.start_import_stop(cov, "missing") nums = cov._analyze("missing.py").numbers self.assertEqual(nums.n_files, 1) diff --git a/test/test_html.py b/test/test_html.py index 9d1b7523..fd6ebc44 100644 --- a/test/test_html.py +++ b/test/test_html.py @@ -32,9 +32,7 @@ class HtmlTestHelpers(CoverageTest): """Run coverage on main_file.py, and create an HTML report.""" self.clean_local_file_imports() cov = coverage.coverage(**(covargs or {})) - cov.start() - self.import_local_file("main_file") - cov.stop() + self.start_import_stop(cov, "main_file") cov.html_report(**(htmlargs or {})) def remove_html_files(self): @@ -219,9 +217,7 @@ class HtmlWithUnparsableFilesTest(CoverageTest): def test_dotpy_not_python(self): self.make_file("innocuous.py", "a = 1") cov = coverage.coverage() - cov.start() - self.import_local_file("innocuous") - cov.stop() + self.start_import_stop(cov, "innocuous") self.make_file("innocuous.py", "<h1>This isn't python!</h1>") self.assertRaisesRegexp( NotPython, @@ -232,9 +228,7 @@ class HtmlWithUnparsableFilesTest(CoverageTest): def test_dotpy_not_python_ignored(self): self.make_file("innocuous.py", "a = 2") cov = coverage.coverage() - cov.start() - self.import_local_file("innocuous") - cov.stop() + self.start_import_stop(cov, "innocuous") self.make_file("innocuous.py", "<h1>This isn't python!</h1>") cov.html_report(ignore_errors=True) self.assert_exists("htmlcov/index.html") @@ -264,9 +258,7 @@ class HtmlWithUnparsableFilesTest(CoverageTest): self.make_file("liar.py", source) self.make_file("liar.html", "{# Whoops, not python code #}") cov = coverage.coverage() - cov.start() - self.import_local_file("liar") - cov.stop() + self.start_import_stop(cov, "liar") cov.html_report() self.assert_exists("htmlcov/index.html") @@ -282,9 +274,7 @@ class HtmlWithUnparsableFilesTest(CoverageTest): # Tokenize will raise an IndentationError if it can't dedent. self.make_file("liar.html", "0\n 2\n 1\n") cov = coverage.coverage() - cov.start() - self.import_local_file("liar") - cov.stop() + self.start_import_stop(cov, "liar") cov.html_report() self.assert_exists("htmlcov/index.html") @@ -298,9 +288,7 @@ class HtmlTest(CoverageTest): self.make_file("sub/__init__.py", "") self.make_file("sub/another.py", "print('another')\n") cov = coverage.coverage() - cov.start() - self.import_local_file('thefile') - cov.stop() + self.start_import_stop(cov, 'thefile') os.remove("sub/another.py") missing_file = os.path.join(self.temp_dir, "sub", "another.py") diff --git a/test/test_oddball.py b/test/test_oddball.py index a8c243de..14d56b11 100644 --- a/test/test_oddball.py +++ b/test/test_oddball.py @@ -105,9 +105,7 @@ class RecursionTest(CoverageTest): """) cov = coverage.coverage() - cov.start() - self.import_local_file("recur") - cov.stop() + self.start_import_stop(cov, "recur") pytrace = (cov.collector.tracer_name() == "PyTracer") expected_missing = [3] @@ -200,9 +198,7 @@ class PyexpatTest(CoverageTest): cov.erase() # Import the python file, executing it. - cov.start() - self.import_local_file("outer") - cov.stop() + self.start_import_stop(cov, "outer") _, statements, missing, _ = cov.analysis("trydom.py") self.assertEqual(statements, [1,3,8,9,10,11,13]) diff --git a/test/test_summary.py b/test/test_summary.py index b460c2dc..e4d5e543 100644 --- a/test/test_summary.py +++ b/test/test_summary.py @@ -280,9 +280,7 @@ class ReportingReturnValue(CoverageTest): """) cov = coverage.coverage() - cov.start() - self.import_local_file("doit") - cov.stop() + self.start_import_stop(cov, "doit") return cov def test_report(self): diff --git a/test/test_xml.py b/test/test_xml.py index dda03e09..2a8bf30d 100644 --- a/test/test_xml.py +++ b/test/test_xml.py @@ -42,9 +42,7 @@ class XmlReportTest(CoverageTest): # https://bitbucket.org/ned/coveragepy/issue/208 self.make_file("innocuous.py", "a = 4") cov = coverage.coverage() - cov.start() - self.import_local_file("innocuous") - cov.stop() + self.start_import_stop(cov, "innocuous") os.remove("innocuous.py") cov.xml_report(ignore_errors=True) self.assert_exists("coverage.xml") @@ -55,9 +53,7 @@ class XmlReportTest(CoverageTest): self.make_file("sub/doit.py", "print('doit!')") self.make_file("main.py", "import sub.doit") cov = coverage.coverage() - cov.start() - self.import_local_file("main") - cov.stop() + self.start_import_stop(cov, "main") return cov def test_filename_format_showing_everything(self): |