summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/coveragetest.py26
-rw-r--r--test/test_api.py52
-rw-r--r--test/test_html.py24
-rw-r--r--test/test_oddball.py8
-rw-r--r--test/test_summary.py4
-rw-r--r--test/test_xml.py8
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):