"""Tests for check_okf.py — the OKF v0.1 frontmatter validator. Covers the control-character check added 2026-08-27: a file that otherwise has valid frontmatter must still fail if its body contains a NUL byte or other control byte outside \\t \\n \\r (the class of bug found in kb/audits/wiki-kompilat-recon-2026-08-26.md — raw bytes pasted in from a psql SELECT over the mail corpus). """ from __future__ import annotations import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) import check_okf # noqa: E402 VALID_FRONTMATTER = """--- okf: "0.1" type: decision visibility: private status: active updated: 2026-08-27 links: [] --- """ def _write(tmp_path: Path, body: str) -> Path: p = tmp_path / "doc.md" p.write_text(VALID_FRONTMATTER + body, encoding="utf-8") return p def test_clean_file_has_no_control_char_errors(tmp_path): path = _write(tmp_path, "# Title\n\nZwykła treść z \t tabulatorem i \r\n końcem linii.\n") errors = check_okf.check_file(path, tmp_path) assert errors == [] def test_nul_byte_in_body_is_flagged(tmp_path): path = _write(tmp_path, "# Title\n\nZawiera bajt NUL: \x00 w tym miejscu.\n") errors = check_okf.check_file(path, tmp_path) assert any("bajt kontrolny" in e and "0x0" in e for e in errors) def test_control_char_error_reports_correct_line(tmp_path): body = "linia 1\nlinia 2\nzepsuta \x00 linia 3\nlinia 4\n" path = _write(tmp_path, body) errors = check_okf.check_file(path, tmp_path) control_errors = [e for e in errors if "bajt kontrolny" in e] assert len(control_errors) == 1 # Frontmatter occupies 7 lines before the body starts. frontmatter_lines = VALID_FRONTMATTER.count("\n") expected_line = frontmatter_lines + 3 assert f"w linii {expected_line}" in control_errors[0] def test_multiple_control_chars_same_line_reported_once(tmp_path): path = _write(tmp_path, "para \x00 z dwoma \x00 bajtami na tej samej linii\n") errors = check_okf.check_file(path, tmp_path) control_errors = [e for e in errors if "bajt kontrolny" in e] assert len(control_errors) == 1