Commit Graph

1 Commits

Author SHA1 Message Date
7977217013 test(sveta): Write unit tests for deduplication and closure decision
Outcome: done
Changed: tests/test_research_dedup.py:1-303
Verified by: make verify -> exit_code 0, 176 tests OK (36 new), "verification passed"; only pre-existing StarletteDeprecationWarning from tests/test_api.py, none introduced
Findings: 36 stdlib-unittest tests with retoor header; AC1 URL dedup: re-add rejected, normalized variants (case, IDNA, default port, slash collapse, trailing slash) collapse to one seen entry, duplicates across responses recorded once, whitespace-only URL normalizes to "" and is registered once then rejected; AC2 content dedup: identical and whitespace-near-identical content under different URLs rejected (content_seen=1, content_duplicates_skipped=1), blank rejected; AC3 query dedup: casefold+whitespace-collapse key, title/description/extra variants deduped, length window MIN/MAX enforced, duplicate never issued twice; AC4 closure: round with 0 new URLs and 0 new queries halts, new URL or new query continues, empty-result round halts and exhausts pending; closure decision expressed via snapshot deltas (urls_seen, queries_enqueued) because no closure module exists yet; no test skipped or weakened
Open: none
Confidence: high - every acceptance criterion asserted by passing tests; two initial failures were corrected test expectations, not implementation defects

Typosaurus-Run: 4e2afb673c7f4578a12276d9181b982d
Typosaurus-Node: 1a3d7873cf5b47eb84042647a511f3f4
Typosaurus-Agent: @sveta
Refs: #31
2026-08-07 19:25:39 +00:00