From b437400eb87fdefbb9d0508c06cc3742227632e6 Mon Sep 17 00:00:00 2001 From: Dan Riti Date: Fri, 24 Jun 2016 07:56:45 -0400 Subject: Add test case that demonstrates problem #492 --- tests/test_process.py | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/tests/test_process.py b/tests/test_process.py index 2c7751f..1421db0 100644 --- a/tests/test_process.py +++ b/tests/test_process.py @@ -1029,9 +1029,8 @@ class ProcessCoverageMixin(object): class ProcessStartupTest(ProcessCoverageMixin, CoverageTest): """Test that we can measure coverage in sub-processes.""" - def test_subprocess_with_pth_files(self): # pragma: not covered - if env.METACOV: - self.skipTest("Can't test sub-process pth file suppport during metacoverage") + def setUp(self): + super(ProcessStartupTest, self).setUp() # Main will run sub.py self.make_file("main.py", """\ @@ -1044,6 +1043,11 @@ class ProcessStartupTest(ProcessCoverageMixin, CoverageTest): with open("out.txt", "w") as f: f.write("Hello, world!\\n") """) + + def test_subprocess_with_pth_files(self): # pragma: not covered + if env.METACOV: + self.skip("Can't test sub-process pth file suppport during metacoverage") + self.make_file("coverage.ini", """\ [run] data_file = .mycovdata @@ -1060,6 +1064,28 @@ class ProcessStartupTest(ProcessCoverageMixin, CoverageTest): data.read_file(".mycovdata") self.assertEqual(data.line_counts()['sub.py'], 2) + def test_subprocess_with_pth_files_and_parallel(self): + if env.METACOV: + self.skip("Can't test sub-process pth file suppport during metacoverage") + + self.make_file("coverage.ini", """\ + [run] + parallel = true + """) + + self.set_environ("COVERAGE_PROCESS_START", "coverage.ini") + out = self.run_command("coverage run main.py") + + with open("out.txt") as f: + self.assertEqual(f.read(), "Hello, world!\n") + + self.run_command("coverage combine") + self.assert_exists(".coverage") + data_files = glob.glob(os.getcwd() + '/.coverage*') + self.assertEquals(len(data_files), 1, + "Expected only .coverage after combine, looks like there are " + \ + "extra data files that were not cleaned up: %r" % data_files) + class ProcessStartupWithSourceTest(ProcessCoverageMixin, CoverageTest): """Show that we can configure {[run]source} during process-level coverage. -- cgit v1.2.1