cpython/Lib/test/test_trace.py

48 lines
1.6 KiB
Python

# 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()