summaryrefslogtreecommitdiff
path: root/test/test_coverage.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-01-03 10:23:06 -0500
committerNed Batchelder <ned@nedbatchelder.com>2010-01-03 10:23:06 -0500
commit2fd7773780de939169ca4ae8ad347f92785cd112 (patch)
tree24391041799b3d7e55b5cb1a60edfc9ee6cf9f08 /test/test_coverage.py
parentf34cffd56572c46015615d4e541c600fde6c5af4 (diff)
downloadpython-coveragepy-git-2fd7773780de939169ca4ae8ad347f92785cd112.tar.gz
Parallel mode can be set from the .coveragerc file.
Diffstat (limited to 'test/test_coverage.py')
-rw-r--r--test/test_coverage.py58
1 files changed, 52 insertions, 6 deletions
diff --git a/test/test_coverage.py b/test/test_coverage.py
index 772075e4..f8991406 100644
--- a/test/test_coverage.py
+++ b/test/test_coverage.py
@@ -1680,6 +1680,14 @@ class ModuleTest(CoverageTest):
class ProcessTest(CoverageTest):
"""Tests of the per-process behavior of coverage.py."""
+ def number_of_data_files(self):
+ """Return the number of coverage data files in this directory."""
+ num = 0
+ for f in os.listdir('.'):
+ if f.startswith('.coverage.') or f == '.coverage':
+ num += 1
+ return num
+
def testSaveOnExit(self):
self.make_file("mycode.py", """\
h = "Hello"
@@ -1725,18 +1733,56 @@ class ProcessTest(CoverageTest):
self.assertFalse(os.path.exists(".coverage"))
# After two -p runs, there should be two .coverage.machine.123 files.
- self.assertEqual(
- len([f for f in os.listdir('.') if f.startswith('.coverage')]),
- 2)
+ self.assertEqual(self.number_of_data_files(), 2)
# Combine the parallel coverage data files into .coverage .
self.run_command("coverage -c")
self.assertTrue(os.path.exists(".coverage"))
# After combining, there should be only the .coverage file.
- self.assertEqual(
- len([f for f in os.listdir('.') if f.startswith('.coverage')]),
- 1)
+ self.assertEqual(self.number_of_data_files(), 1)
+
+ # 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.summary()['b_or_c.py'], 7)
+
+ def test_combine_with_rc(self):
+ self.make_file("b_or_c.py", """\
+ import sys
+ a = 1
+ if sys.argv[1] == 'b':
+ b = 1
+ else:
+ c = 1
+ d = 1
+ print ('done')
+ """)
+
+ self.make_file(".coveragerc", """\
+ [run]
+ parallel = true
+ """)
+
+ out = self.run_command("coverage run b_or_c.py b")
+ self.assertEqual(out, 'done\n')
+ self.assertFalse(os.path.exists(".coverage"))
+
+ out = self.run_command("coverage run b_or_c.py c")
+ self.assertEqual(out, 'done\n')
+ self.assertFalse(os.path.exists(".coverage"))
+
+ # After two runs, there should be two .coverage.machine.123 files.
+ self.assertEqual(self.number_of_data_files(), 2)
+
+ # Combine the parallel coverage data files into .coverage .
+ self.run_command("coverage combine")
+ self.assertTrue(os.path.exists(".coverage"))
+ self.assertTrue(os.path.exists(".coveragerc"))
+
+ # After combining, there should be only the .coverage file.
+ self.assertEqual(self.number_of_data_files(), 1)
# Read the coverage file and see that b_or_c.py has all 7 lines
# executed.