| # Testing the trace module |
| |
| from test.support import run_unittest, TESTFN, rmtree, unlink, captured_stdout |
| import unittest |
| import trace |
| import os, sys |
| |
| class TestCoverage(unittest.TestCase): |
| def tearDown(self): |
| rmtree(TESTFN) |
| unlink(TESTFN) |
| |
| def _coverage(self, tracer): |
| tracer.run('from test import test_pprint; test_pprint.test_main()') |
| r = tracer.results() |
| r.write_results(show_missing=True, summary=True, coverdir=TESTFN) |
| |
| def test_coverage(self): |
| tracer = trace.Trace(trace=0, count=1) |
| with captured_stdout() as stdout: |
| self._coverage(tracer) |
| stdout = stdout.getvalue() |
| self.assertTrue("pprint.py" in stdout) |
| self.assertTrue("case.py" in stdout) # from unittest |
| files = os.listdir(TESTFN) |
| self.assertTrue("pprint.cover" in files) |
| self.assertTrue("unittest.case.cover" in files) |
| |
| def test_coverage_ignore(self): |
| # Ignore all files, nothing should be traced nor printed |
| libpath = os.path.normpath(os.path.dirname(os.__file__)) |
| # sys.prefix does not work when running from a checkout |
| tracer = trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix, libpath], |
| trace=0, count=1) |
| with captured_stdout() as stdout: |
| self._coverage(tracer) |
| self.assertEquals(stdout.getvalue(), "") |
| if os.path.exists(TESTFN): |
| files = os.listdir(TESTFN) |
| self.assertEquals(files, []) |
| |
| |
| def test_main(): |
| run_unittest(__name__) |
| |
| if __name__ == "__main__": |
| test_main() |