from scripts.adapters.vulture import parse_vulture_output def test_parses_unused_function(): out = "src/foo.py:42: unused function 'bar' (60% confidence)\n" findings = parse_vulture_output(out) assert len(findings) == 1 f = findings[0] assert f.tool == "vulture" assert f.file == "src/foo.py" assert f.line == 42 assert "unused function 'bar'" in f.message assert f.severity == "low" def test_high_confidence_unused_is_medium(): out = "src/foo.py:7: unused import 'os' (90% confidence)\n" findings = parse_vulture_output(out) assert findings[0].severity == "medium" def test_empty_stdout(): assert parse_vulture_output("") == [] def test_rule_id_contains_confidence(): out = "src/foo.py:7: unused import 'os' (90% confidence)\n" findings = parse_vulture_output(out) assert findings[0].rule_id == "vulture:90pct" def test_malformed_line_skipped(): assert parse_vulture_output("not a valid line\n") == []