summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/html.py3
-rw-r--r--coverage/summary.py3
-rw-r--r--tests/test_process.py32
3 files changed, 29 insertions, 9 deletions
diff --git a/coverage/html.py b/coverage/html.py
index 9148f422..da23935d 100644
--- a/coverage/html.py
+++ b/coverage/html.py
@@ -126,8 +126,7 @@ class HtmlReporter(Reporter):
self.index_file()
self.make_local_static_report_files()
-
- return self.totals.pc_covered
+ return self.totals.n_statements and self.totals.pc_covered
def make_local_static_report_files(self):
"""Make local instances of static files for HTML report."""
diff --git a/coverage/summary.py b/coverage/summary.py
index aed83350..20123ea1 100644
--- a/coverage/summary.py
+++ b/coverage/summary.py
@@ -98,5 +98,6 @@ class SummaryReporter(Reporter):
if self.config.show_missing:
args += ("",)
outfile.write(fmt_coverage % args)
-
+ if not total.n_files:
+ raise CoverageException("No data to report.")
return total.n_statements and total.pc_covered
diff --git a/tests/test_process.py b/tests/test_process.py
index 922ea8c1..4c3c363f 100644
--- a/tests/test_process.py
+++ b/tests/test_process.py
@@ -703,17 +703,15 @@ class FailUnderTest(CoverageTest):
st, _ = self.run_command_status("coverage report")
self.assertEqual(st, 2)
-class FailUnderNoDataTest(CoverageTest):
- def setUp(self):
- super(FailUnderNoDataTest, self).setUp()
+class FailUnderNoFilesTest(CoverageTest):
+ def setUp(self):
+ super(FailUnderNoFilesTest, self).setUp()
self.make_file(".coveragerc", "[report]\nfail_under = 99\n")
- if os.path.exists('.coverage'):
- os.remove('.coverage')
def test_report(self):
st, _ = self.run_command_status("coverage report")
- self.assertEqual(st, 2)
+ self.assertEqual(st, 1)
def test_xml(self):
st, _ = self.run_command_status("coverage xml")
@@ -724,6 +722,28 @@ class FailUnderNoDataTest(CoverageTest):
self.assertEqual(st, 1)
+class FailUnderEmptyFilesTest(CoverageTest):
+ def setUp(self):
+ super(FailUnderEmptyFilesTest, self).setUp()
+
+ self.make_file(".coveragerc", "[report]\nfail_under = 99\n")
+ self.make_file("empty.py", "")
+ st, _ = self.run_command_status("coverage run empty.py")
+ self.assertEqual(st, 0)
+
+ def test_report(self):
+ st, _ = self.run_command_status("coverage report")
+ self.assertEqual(st, 2)
+
+ def test_xml(self):
+ st, _ = self.run_command_status("coverage xml")
+ self.assertEqual(st, 2)
+
+ def test_html(self):
+ st, _ = self.run_command_status("coverage html")
+ self.assertEqual(st, 2)
+
+
def possible_pth_dirs():
"""Produce a sequence of directories for trying to write .pth files."""
# First look through sys.path, and we find a .pth file, then it's a good