mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-10 22:47:02 +01:00
Verified by the 100%-coverage tests from the previous commit, written before this seam existed. _cpu_table/_dedupe_ram/_ram_table/_gpu_table move to _usage_report_tables.py with the two constants they own. _md_escape and _fmt_h move to _usage_report_format.py: both the tables module and the render module need them, so a third module is what avoids a cycle. Import sites name the owning module; no re-export barrel. usage_report.py needed no edit - it imports _fmt_h and _render_report from the render module, and both names still resolve there. Evidence the move was verbatim: an AST comparison of all 10 functions against HEAD reports 10 identical, 0 mismatches. That matters because I retyped rather than cut-and-pasted, and did briefly introduce a literal × where the original had × - ruff's RUF001 caught it. Coverage stays 100% line+branch on all three (15/55/54 stmts, 4/10/14 branches, 0 missed). Test count 43 before and after, summed across the five files it now lives in - the check that matters for a test split, since a file outside the runner's glob is silently never collected. Directory total 143 passed, unchanged. Ran the real program: a full report from today's atop + pmon logs, every section rendering through the new boundaries including the RAM sibling dedupe and its (+20 more) truncation. Over-cap 41 -> 39. No suppressions; a shared test-helper module was tried and abandoned because name-tests-test would have needed an exclusion. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011w2Pj4Ek3ZNMQVYcFHgXDY
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
"""Tests for usage_report's Markdown escaping and duration formatting."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import _usage_report_format as fmt
|
|
import pytest
|
|
|
|
|
|
# --------------------------------------------------------------------------- #
|
|
# _fmt_h
|
|
# --------------------------------------------------------------------------- #
|
|
@pytest.mark.parametrize(
|
|
("seconds", "expected"),
|
|
[
|
|
(0.0, "0.0s"),
|
|
(8.34, "8.3s"),
|
|
(59.9, "59.9s"),
|
|
(60.0, "1m 00s"),
|
|
(252.0, "4m 12s"),
|
|
(3599.0, "59m 59s"),
|
|
(3600.0, "1h 00m"),
|
|
(5000.0, "1h 23m"),
|
|
],
|
|
)
|
|
def test_fmt_h_picks_unit_by_magnitude(seconds: float, expected: str) -> None:
|
|
"""Durations switch h/m/s at exactly 3600 and 60 seconds."""
|
|
assert fmt._fmt_h(seconds) == expected
|
|
|
|
|
|
# --------------------------------------------------------------------------- #
|
|
# _md_escape
|
|
# --------------------------------------------------------------------------- #
|
|
def test_md_escape_escapes_pipe_and_flattens_newline() -> None:
|
|
"""Pipes are backslash-escaped and newlines become spaces."""
|
|
assert fmt._md_escape("a|b\nc") == r"a\|b c"
|
|
|
|
|
|
def test_md_escape_leaves_plain_names_untouched() -> None:
|
|
"""A name with no table-breaking characters passes through unchanged."""
|
|
assert fmt._md_escape("firefox") == "firefox"
|