def test_does_not_trace_files_outside_inclusion(tmpdir, branch, timid): @given(st.booleans()) def test(a): rnd() cov = Coverage( config_file=False, data_file=str(tmpdir.join('.coverage')), branch=branch, timid=timid, include=[__file__], ) cov._warn = escalate_warning cov.start() test() cov.stop() data = cov.get_data() assert len(list(data.measured_files())) == 1
def test_achieves_full_coverage(tmpdir, branch, timid): @given(st.booleans(), st.booleans(), st.booleans()) def test(a, b, c): some_function_to_test(a, b, c) cov = Coverage( config_file=False, data_file=str(tmpdir.join('.coverage')), branch=branch, timid=timid, ) cov._warn = escalate_warning cov.start() test() cov.stop() data = cov.get_data() lines = data.lines(__file__) for i in hrange(LINE_START + 1, LINE_END + 1): assert i in lines
def test_coverage_includes_unexecuted_files(testdir, branch, timid): # Setup two files under test in a Python package. # One will be imported explicitly (foo), one will not (bar) testdir.syspathinsert() testdir.tmpdir.ensure('__init__.py') testdir.tmpdir.ensure('foo.py').write(''' def foo(x): return x ''') testdir.tmpdir.ensure('bar.py').write(''' def bar(x): return x ''') # Setup a function to exercise the functionality in `foo` only @given(st.booleans()) def test(a): package = testdir.tmpdir.pyimport() foo = importlib.import_module('foo', package.__name__) foo.foo(a) # Exercise test function, restricting coverage to just our custom package cov = Coverage( config_file=False, data_file=str(testdir.tmpdir.join('.coverage')), branch=branch, timid=timid, source=[str(testdir.tmpdir)], ) cov._warn = escalate_warning cov.start() test() cov.stop() # Verify data = cov.get_data() filenames = {os.path.split(f)[1] for f in data.measured_files()} assert filenames == {'__init__.py', 'bar.py', 'foo.py'}