Skip to content

Commit 12397a5

Browse files
authored
gh-112192: Increase the trace module coverage precision to one decimal (#126972)
1 parent dabcecf commit 12397a5

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

Lib/test/test_regrtest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ def test_coverage(self):
11381138
output = self.run_tests("--coverage", test)
11391139
self.check_executed_tests(output, [test], stats=1)
11401140
regex = (r'lines +cov% +module +\(path\)\n'
1141-
r'(?: *[0-9]+ *[0-9]{1,2}% *[^ ]+ +\([^)]+\)+)+')
1141+
r'(?: *[0-9]+ *[0-9]{1,2}\.[0-9]% *[^ ]+ +\([^)]+\)+)+')
11421142
self.check_line(output, regex)
11431143

11441144
def test_wait(self):

Lib/test/test_trace.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ def test_issue9936(self):
412412
coverage = {}
413413
for line in stdout:
414414
lines, cov, module = line.split()[:3]
415-
coverage[module] = (int(lines), int(cov[:-1]))
415+
coverage[module] = (float(lines), float(cov[:-1]))
416416
# XXX This is needed to run regrtest.py as a script
417417
modname = trace._fullmodname(sys.modules[modname].__file__)
418418
self.assertIn(modname, coverage)
@@ -553,7 +553,7 @@ def f():
553553
stdout = stdout.decode()
554554
self.assertEqual(status, 0)
555555
self.assertIn('lines cov% module (path)', stdout)
556-
self.assertIn(f'6 100% {modulename} ({filename})', stdout)
556+
self.assertIn(f'6 100.0% {modulename} ({filename})', stdout)
557557

558558
def test_run_as_module(self):
559559
assert_python_ok('-m', 'trace', '-l', '--module', 'timeit', '-n', '1')

Lib/trace.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,13 @@ def write_results(self, show_missing=True, summary=False, coverdir=None, *,
279279
n_hits, n_lines = self.write_results_file(coverpath, source,
280280
lnotab, count, encoding)
281281
if summary and n_lines:
282-
percent = int(100 * n_hits / n_lines)
283-
sums[modulename] = n_lines, percent, modulename, filename
282+
sums[modulename] = n_lines, n_hits, modulename, filename
284283

285284
if summary and sums:
286285
print("lines cov% module (path)")
287286
for m in sorted(sums):
288-
n_lines, percent, modulename, filename = sums[m]
289-
print("%5d %3d%% %s (%s)" % sums[m])
287+
n_lines, n_hits, modulename, filename = sums[m]
288+
print(f"{n_lines:5d} {n_hits/n_lines:.1%} {modulename} ({filename})")
290289

291290
if self.outfile:
292291
# try and store counts and module info into self.outfile
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In the :mod:`trace` module, increase the coverage precision (``cov%``) to one decimal.

0 commit comments

Comments
 (0)