diff options
author | garar <none@none> | 2015-08-14 12:44:23 +0000 |
---|---|---|
committer | garar <none@none> | 2015-08-14 12:44:23 +0000 |
commit | c62707914e5a90a0a843b7ed72fae0153ce97cd6 (patch) | |
tree | 8234ba40e98c95713c844e32a957ef2995d1e977 | |
parent | e265df98cec9d3cf2cd1fd89975002fb27c5978a (diff) | |
download | python-coveragepy-git-c62707914e5a90a0a843b7ed72fae0153ce97cd6.tar.gz |
Update skip_covered handling, add info when files are skipped. Tests.
-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 2bf097bc..9b8b2338 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: @@ -66,6 +70,7 @@ class SummaryReporter(Reporter): else: no_missing_branches = True if no_missing_lines and no_missing_branches: + skipped_count += 1 continue args = (fr.relative_filename(), nums.n_statements, nums.n_missing) @@ -103,6 +108,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 850f4dfd..15e948ab 100644 --- a/tests/test_summary.py +++ b/tests/test_summary.py @@ -259,14 +259,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: @@ -280,6 +282,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") @@ -287,8 +294,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%") @@ -323,12 +332,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. |