diff options
Diffstat (limited to 'tests/test_summary.py')
-rw-r--r-- | tests/test_summary.py | 51 |
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 |