summaryrefslogtreecommitdiff
path: root/tests/test_process.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-10-03 16:59:46 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-10-03 16:59:46 -0400
commita877aaf13d9f72ee317b392c86313a3003bcb3b8 (patch)
tree22fdb568fd85c4179774fdfb4024486e37d3e1ce /tests/test_process.py
parentb27f9eab849696b46e9fbb84dcdc0f34078684d1 (diff)
downloadpython-coveragepy-git-a877aaf13d9f72ee317b392c86313a3003bcb3b8.tar.gz
Combine can now ignore errors.
Diffstat (limited to 'tests/test_process.py')
-rw-r--r--tests/test_process.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/test_process.py b/tests/test_process.py
index 3023a18c..b41472d6 100644
--- a/tests/test_process.py
+++ b/tests/test_process.py
@@ -94,6 +94,42 @@ class ProcessTest(CoverageTest):
data.read_file(".coverage")
self.assertEqual(data.line_counts()['b_or_c.py'], 7)
+ def test_combine_parallel_data_with_a_corrupt_file(self):
+ self.make_b_or_c_py()
+ out = self.run_command("coverage run -p b_or_c.py b")
+ self.assertEqual(out, 'done\n')
+ self.assert_doesnt_exist(".coverage")
+ self.assertEqual(self.number_of_data_files(), 1)
+
+ out = self.run_command("coverage run -p b_or_c.py c")
+ self.assertEqual(out, 'done\n')
+ self.assert_doesnt_exist(".coverage")
+
+ # After two -p runs, there should be two .coverage.machine.123 files.
+ self.assertEqual(self.number_of_data_files(), 2)
+
+ # Make a bogus data file.
+ self.make_file(".coverage.bad", "This isn't a coverage data file.")
+
+ # Combine the parallel coverage data files into .coverage .
+ out = self.run_command("coverage combine -i")
+ self.assert_exists(".coverage")
+ self.assert_exists(".coverage.bad")
+ warning_regex = (
+ r"Coverage.py warning: Couldn't read data from '.*\.coverage\.bad': "
+ r"CoverageException: Doesn't seem to be a coverage\.py data file"
+ )
+ self.assertRegex(out, warning_regex)
+
+ # After combining, those two should be the only data files.
+ self.assertEqual(self.number_of_data_files(), 2)
+
+ # Read the coverage file and see that b_or_c.py has all 7 lines
+ # executed.
+ data = coverage.CoverageData()
+ data.read_file(".coverage")
+ self.assertEqual(data.line_counts()['b_or_c.py'], 7)
+
def test_combine_parallel_data_in_two_steps(self):
self.make_b_or_c_py()