summaryrefslogtreecommitdiff
path: root/tests/test_summary.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_summary.py')
-rw-r--r--tests/test_summary.py51
1 files changed, 33 insertions, 18 deletions
diff --git a/tests/test_summary.py b/tests/test_summary.py
index c7327f1f..850f4dfd 100644
--- a/tests/test_summary.py
+++ b/tests/test_summary.py
@@ -1,3 +1,6 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+
"""Test text-based summary reporting for coverage.py"""
import glob
@@ -21,16 +24,20 @@ class SummaryTest(CoverageTest):
def setUp(self):
super(SummaryTest, self).setUp()
+ # Parent class saves and restores sys.path, we can just modify it.
+ sys.path.append(self.nice_file(HERE, 'modules'))
+
+ def make_mycode(self):
+ """Make the mycode.py file when needed."""
self.make_file("mycode.py", """\
import covmod1
import covmodzip1
a = 1
print('done')
""")
- # Parent class saves and restores sys.path, we can just modify it.
- sys.path.append(self.nice_file(HERE, 'modules'))
def test_report(self):
+ self.make_mycode()
out = self.run_command("coverage run mycode.py")
self.assertEqual(out, 'done\n')
report = self.report_from_command("coverage report")
@@ -38,19 +45,20 @@ class SummaryTest(CoverageTest):
# Name Stmts Miss Cover
# ------------------------------------------------------------------
# c:/ned/coverage/tests/modules/covmod1.py 2 0 100%
- # c:/ned/coverage/tests/zipmods.zip/covmodzip1.py 2 0 100%
+ # c:/ned/coverage/tests/zipmods.zip/covmodzip1.py 3 0 100%
# mycode.py 4 0 100%
# ------------------------------------------------------------------
- # TOTAL 8 0 100%
+ # TOTAL 9 0 100%
self.assertNotIn("/coverage/__init__/", report)
self.assertIn("/tests/modules/covmod1.py ", report)
self.assertIn("/tests/zipmods.zip/covmodzip1.py ", report)
self.assertIn("mycode.py ", report)
- self.assertEqual(self.last_line_squeezed(report), "TOTAL 8 0 100%")
+ self.assertEqual(self.last_line_squeezed(report), "TOTAL 9 0 100%")
def test_report_just_one(self):
# Try reporting just one module
+ self.make_mycode()
self.run_command("coverage run mycode.py")
report = self.report_from_command("coverage report mycode.py")
@@ -67,6 +75,7 @@ class SummaryTest(CoverageTest):
def test_report_wildcard(self):
# Try reporting using wildcards to get the modules.
+ self.make_mycode()
self.run_command("coverage run mycode.py")
report = self.report_from_command("coverage report my*.py")
@@ -83,10 +92,9 @@ class SummaryTest(CoverageTest):
def test_report_omitting(self):
# Try reporting while omitting some modules
+ self.make_mycode()
self.run_command("coverage run mycode.py")
- report = self.report_from_command(
- "coverage report --omit '%s/*'" % HERE
- )
+ report = self.report_from_command("coverage report --omit '%s/*'" % HERE)
# Name Stmts Miss Cover
# -------------------------------
@@ -101,6 +109,7 @@ class SummaryTest(CoverageTest):
def test_report_including(self):
# Try reporting while including some modules
+ self.make_mycode()
self.run_command("coverage run mycode.py")
report = self.report_from_command("coverage report --include=mycode*")
@@ -325,6 +334,7 @@ class SummaryTest(CoverageTest):
# We run a .py file, and when reporting, we can't parse it as Python.
# We should get an error message in the report.
+ self.make_mycode()
self.run_command("coverage run mycode.py")
self.make_file("mycode.py", "This isn't python at all!")
report = self.report_from_command("coverage report mycode.py")
@@ -333,8 +343,9 @@ class SummaryTest(CoverageTest):
# Name Stmts Miss Cover
# ----------------------------
# mycode NotPython: Couldn't parse '/tmp/test_cover/63354509363/mycode.py' as Python source: 'invalid syntax' at line 1
+ # No data to report.
- last = self.last_line_squeezed(report)
+ last = self.squeezed_lines(report)[-2]
# The actual file name varies run to run.
last = re.sub(r"parse '.*mycode.py", "parse 'mycode.py", last)
# The actual error message varies version to version
@@ -348,6 +359,7 @@ class SummaryTest(CoverageTest):
def test_dotpy_not_python_ignored(self):
# We run a .py file, and when reporting, we can't parse it as Python,
# but we've said to ignore errors, so there's no error reported.
+ self.make_mycode()
self.run_command("coverage run mycode.py")
self.make_file("mycode.py", "This isn't python at all!")
report = self.report_from_command("coverage report -i mycode.py")
@@ -355,7 +367,8 @@ class SummaryTest(CoverageTest):
# Name Stmts Miss Cover
# ----------------------------
- self.assertEqual(self.line_count(report), 2)
+ self.assertEqual(self.line_count(report), 3)
+ self.assertIn('No data to report.', report)
def test_dothtml_not_python(self):
# We run a .html file, and when reporting, we can't parse it as
@@ -370,8 +383,10 @@ class SummaryTest(CoverageTest):
# Name Stmts Miss Cover
# ----------------------------
+ # No data to report.
- self.assertEqual(self.line_count(report), 2)
+ self.assertEqual(self.line_count(report), 3)
+ self.assertIn('No data to report.', report)
def get_report(self, cov):
"""Get the report from `cov`, and canonicalize it."""
@@ -393,7 +408,7 @@ class SummaryTest(CoverageTest):
self.make_file("main.py", """\
print("y")
""")
- cov = coverage.coverage(branch=True, source=["."])
+ cov = coverage.Coverage(branch=True, source=["."])
cov.start()
import main # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -402,7 +417,7 @@ class SummaryTest(CoverageTest):
def run_TheCode_and_report_it(self):
"""A helper for the next few tests."""
- cov = coverage.coverage()
+ cov = coverage.Coverage()
cov.start()
import TheCode # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -437,7 +452,7 @@ class SummaryTest(CoverageTest):
self.make_file("mod.pyw", """\
print("In mod.pyw")
""")
- cov = coverage.coverage()
+ cov = coverage.Coverage()
cov.start()
import start # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -457,7 +472,7 @@ class SummaryTest(CoverageTest):
py_compile.compile("mod.py")
# Run the program.
- cov = coverage.coverage()
+ cov = coverage.Coverage()
cov.start()
import main # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -487,7 +502,7 @@ class SummaryTest(CoverageTest):
os.rename(pycs[0], "mod.pyc")
# Run the program.
- cov = coverage.coverage()
+ cov = coverage.Coverage()
cov.start()
import main # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -515,7 +530,7 @@ class SummaryTest2(CoverageTest):
def test_empty_files(self):
# Shows that empty files like __init__.py are listed as having zero
# statements, not one statement.
- cov = coverage.coverage()
+ cov = coverage.Coverage()
cov.start()
import usepkgs # pragma: nested # pylint: disable=import-error,unused-variable
cov.stop() # pragma: nested
@@ -544,7 +559,7 @@ class ReportingReturnValueTest(CoverageTest):
g = 7
""")
- cov = coverage.coverage()
+ cov = coverage.Coverage()
self.start_import_stop(cov, "doit")
return cov