diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2010-01-03 10:23:06 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2010-01-03 10:23:06 -0500 |
commit | a5bc551f78df166a0d0e272fae7a7b5205b416f7 (patch) | |
tree | 652c49d9cf3c401b0e8263764d24d7456f634f89 /test/test_coverage.py | |
parent | 47c3f02dab1a745f595008d006f1474f148a9157 (diff) | |
download | python-coveragepy-a5bc551f78df166a0d0e272fae7a7b5205b416f7.tar.gz |
Parallel mode can be set from the .coveragerc file.
Diffstat (limited to 'test/test_coverage.py')
-rw-r--r-- | test/test_coverage.py | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/test/test_coverage.py b/test/test_coverage.py index 772075e..f899140 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. |