Files

26 lines
977 B
Python

import importlib.util
from pathlib import Path
import unittest
from unittest.mock import patch
ROOT=Path(__file__).resolve().parents[1]
spec=importlib.util.spec_from_file_location('coverage_report',ROOT/'tools/coverage_report.py')
coverage=importlib.util.module_from_spec(spec)
spec.loader.exec_module(coverage)
class CoverageCompatibilityTest(unittest.TestCase):
def test_non_source_line_markers_do_not_enter_coverage_counts(self):
# Python 3.14 trace may expose None for artificial bytecode positions.
with patch.object(coverage.trace,'_find_executable_linenos',return_value={None:1,0:1,1:1,7:1}):
actual=coverage.executable_lines('example.py')
self.assertEqual(actual,{1,7})
def test_real_source_lines_remain_available(self):
lines=coverage.executable_lines(__file__)
self.assertTrue(lines)
self.assertTrue(all(type(line) is int and line>0 for line in lines))
if __name__=='__main__':unittest.main()