Files
portfolio-hub/tests/release/test_ruff_ratchet.py
T

25 lines
843 B
Python

from scripts.ruff_ratchet import BASELINE_BY_RULE, BASELINE_TOTAL, baseline_regressions
def _diagnostics(**counts: int) -> list[dict[str, str]]:
return [{"code": code} for code, count in counts.items() for _ in range(count)]
def test_exact_baseline_passes() -> None:
diagnostics = _diagnostics(**BASELINE_BY_RULE)
assert len(diagnostics) == BASELINE_TOTAL
assert baseline_regressions(diagnostics) == []
def test_new_rule_fails_from_zero_baseline() -> None:
assert baseline_regressions([{"code": "E501"}]) == ["E501: 1 > 0"]
def test_existing_rule_increase_fails() -> None:
diagnostics = _diagnostics(I001=BASELINE_BY_RULE["I001"] + 1)
assert baseline_regressions(diagnostics) == ["I001: 91 > 90"]
def test_reduced_debt_passes() -> None:
assert baseline_regressions(_diagnostics(I001=1, F401=1)) == []