mirror of https://github.com/python/cpython
48 lines
1.6 KiB
Python
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()
|