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)) == []