diff options
author | garar <devnull@localhost> | 2015-08-14 12:47:52 +0000 |
---|---|---|
committer | garar <devnull@localhost> | 2015-08-14 12:47:52 +0000 |
commit | c96558312d950d3dec61d01c0df031dd0feb828c (patch) | |
tree | de0518e8c4b0fa48f6baec1e6bb5862d58790a89 | |
parent | 014461793a5645a34ed6f995ea39c784f4e32f85 (diff) | |
parent | 6648c52f8563e7e29715e7d6d5bb8045e0a89601 (diff) | |
download | python-coveragepy-c96558312d950d3dec61d01c0df031dd0feb828c.tar.gz |
Merge default
-rw-r--r-- | coverage/summary.py | 11 | ||||
-rw-r--r-- | tests/test_summary.py | 33 |
2 files changed, 39 insertions, 5 deletions
diff --git a/coverage/summary.py b/coverage/summary.py index 59d1b7c..99e7397 100644 --- a/coverage/summary.py +++ b/coverage/summary.py @@ -29,6 +29,9 @@ class SummaryReporter(Reporter): max_name = max([len(fr.relative_filename()) for fr in self.file_reporters] + [5]) fmt_name = "%%- %ds " % max_name fmt_err = "%s %s: %s\n" + fmt_skip_covered = ("\n%s file%s skipped because of 'skip covered' " + "option.\n") + header = (fmt_name % "Name") + " Stmts Miss" fmt_coverage = fmt_name + "%6d %6d" if self.branches: @@ -52,6 +55,7 @@ class SummaryReporter(Reporter): outfile.write(rule) total = Numbers() + skipped_count = 0 for fr in self.file_reporters: try: @@ -63,6 +67,7 @@ class SummaryReporter(Reporter): no_missing_lines = (nums.n_missing == 0) no_missing_branches = (nums.n_partial_branches == 0) if no_missing_lines and no_missing_branches: + skipped_count += 1 continue args = (fr.relative_filename(), nums.n_statements, nums.n_missing) @@ -100,6 +105,10 @@ class SummaryReporter(Reporter): if self.config.show_missing: args += ("",) outfile.write(fmt_coverage % args) - if not total.n_files and not self.config.skip_covered: + if not total.n_files: raise CoverageException("No data to report.") + if self.config.skip_covered and skipped_count: + outfile.write( + fmt_skip_covered % (skipped_count, + 's' if skipped_count > 1 else '')) return total.n_statements and total.pc_covered diff --git a/tests/test_summary.py b/tests/test_summary.py index fda44ee..b765f31 100644 --- a/tests/test_summary.py +++ b/tests/test_summary.py @@ -258,14 +258,16 @@ class SummaryTest(CoverageTest): # Name Stmts Miss Cover # ------------------------------------ # not_covered.py 2 1 50% + # + # 1 file skipped because of 'skip covered' option. - self.assertEqual(self.line_count(report), 3, report) + self.assertEqual(self.line_count(report), 5, report) squeezed = self.squeezed_lines(report) self.assertEqual(squeezed[2], "not_covered.py 2 1 50%") def test_report_skip_covered_branches(self): self.make_file("main.py", """ - import not_covered + import not_covered, covered def normal(z): if z: @@ -279,6 +281,11 @@ class SummaryTest(CoverageTest): print("n") not_covered(True) """) + self.make_file("covered.py", """ + def foo(): + pass + foo() + """) out = self.run_command("coverage run --branch main.py") self.assertEqual(out, "n\nz\n") report = self.report_from_command("coverage report --skip-covered") @@ -286,8 +293,10 @@ class SummaryTest(CoverageTest): # Name Stmts Miss Branch BrPart Cover # -------------------------------------------------- # not_covered.py 4 0 2 1 83% + # + # 2 files skipped because of 'skip covered' option. - self.assertEqual(self.line_count(report), 3, report) + self.assertEqual(self.line_count(report), 5, report) squeezed = self.squeezed_lines(report) self.assertEqual(squeezed[2], "not_covered.py 4 0 2 1 83%") @@ -322,12 +331,28 @@ class SummaryTest(CoverageTest): # not_covered.py 4 0 2 1 83% # -------------------------------------------------- # TOTAL 6 1 2 1 75% + # + # 1 file skipped because of 'skip covered' option. - self.assertEqual(self.line_count(report), 6, report) + self.assertEqual(self.line_count(report), 8, report) squeezed = self.squeezed_lines(report) self.assertEqual(squeezed[2], "also_not_run.py 2 1 0 0 50%") self.assertEqual(squeezed[3], "not_covered.py 4 0 2 1 83%") self.assertEqual(squeezed[5], "TOTAL 6 1 2 1 75%") + self.assertEqual(squeezed[7], + "1 file skipped because of 'skip covered' option.") + + def test_report_skip_covered_no_data(self): + self.make_file("main.py", "") + out = self.run_command("coverage run --branch main.py") + self.assertEqual(out, "") + report = self.report_from_command("coverage report --skip-covered") + # Name Stmts Miss Branch BrPart Cover + # ------------------------------------------- + # No data to report. + self.assertEqual(self.line_count(report), 3, report) + squeezed = self.squeezed_lines(report) + self.assertEqual(squeezed[2], "No data to report.") def test_dotpy_not_python(self): # We run a .py file, and when reporting, we can't parse it as Python. |