summaryrefslogtreecommitdiff
path: root/test/test_coverage.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-01-10 09:34:16 -0500
committerNed Batchelder <ned@nedbatchelder.com>2010-01-10 09:34:16 -0500
commitf8c935a94778a5497ed91a1d9e4e959d59194a46 (patch)
treed6d8fd8639b1cad0c86b8a569c5a5dbfe22ee4eb /test/test_coverage.py
parentec33de7d8136328ac87a7e5f06bd57af77fd0205 (diff)
downloadpython-coveragepy-git-f8c935a94778a5497ed91a1d9e4e959d59194a46.tar.gz
Split out the tests that really run a subprocess.
Diffstat (limited to 'test/test_coverage.py')
-rw-r--r--test/test_coverage.py143
1 files changed, 2 insertions, 141 deletions
diff --git a/test/test_coverage.py b/test/test_coverage.py
index 8145cb2c..e0afd31b 100644
--- a/test/test_coverage.py
+++ b/test/test_coverage.py
@@ -1676,147 +1676,8 @@ class ModuleTest(CoverageTest):
coverage.coverage()
-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"
- w = "world"
- """)
-
- self.assertFalse(os.path.exists(".coverage"))
- self.run_command("coverage -x mycode.py")
- self.assertTrue(os.path.exists(".coverage"))
-
- def testEnvironment(self):
- # Checks that we can import modules from the test directory at all!
- self.make_file("mycode.py", """\
- import covmod1
- import covmodzip1
- a = 1
- print ('done')
- """)
-
- self.assertFalse(os.path.exists(".coverage"))
- out = self.run_command("coverage -x mycode.py")
- self.assertTrue(os.path.exists(".coverage"))
- self.assertEqual(out, 'done\n')
-
- def testCombineParallelData(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')
- """)
-
- out = self.run_command("coverage -x -p b_or_c.py b")
- self.assertEqual(out, 'done\n')
- self.assertFalse(os.path.exists(".coverage"))
-
- out = self.run_command("coverage -x -p b_or_c.py c")
- self.assertEqual(out, 'done\n')
- self.assertFalse(os.path.exists(".coverage"))
-
- # After two -p 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 -c")
- self.assertTrue(os.path.exists(".coverage"))
-
- # 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.
- 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.
- data = coverage.CoverageData()
- data.read_file(".coverage")
- self.assertEqual(data.summary()['b_or_c.py'], 7)
-
- def test_missing_source_file(self):
- # Check what happens if the source is missing when reporting happens.
- self.make_file("fleeting.py", """\
- s = 'goodbye, cruel world!'
- """)
-
- self.run_command("coverage run fleeting.py")
- os.remove("fleeting.py")
- out = self.run_command("coverage html -d htmlcov")
- self.assertRegexpMatches(out, "No source for code: '.*fleeting.py'")
- self.assertFalse("Traceback" in out)
-
- # It happens that the code paths are different for *.py and other
- # files, so try again with no extension.
- self.make_file("fleeting", """\
- s = 'goodbye, cruel world!'
- """)
-
- self.run_command("coverage run fleeting")
- os.remove("fleeting")
- out = self.run_command("coverage html -d htmlcov")
- self.assertRegexpMatches(out, "No source for code: '.*fleeting'")
- self.assertFalse("Traceback" in out)
-
- def test_running_missing_file(self):
- out = self.run_command("coverage run xyzzy.py")
- self.assertRegexpMatches(out, "No file to run: .*xyzzy.py")
- self.assertFalse("Traceback" in out)
+class ReportingTest(CoverageTest):
+ """Tests of some reporting behavior."""
def test_no_data_to_report_on_annotate(self):
# Reporting with no data produces a nice message and no output dir.