36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
"""Unit tests for ``_evidence_kind_to_role`` (query/form normalization).
|
|
|
|
Run: cd be0 && python -m unittest tests.test_evidence_kind_parsing -v
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
|
|
class EvidenceKindParsingTests(unittest.TestCase):
|
|
def test_plain_strings(self) -> None:
|
|
from main import _evidence_kind_to_role
|
|
|
|
self.assertEqual(_evidence_kind_to_role("research"), "research_evidence")
|
|
self.assertEqual(_evidence_kind_to_role("TextBook"), "textbook_evidence")
|
|
self.assertEqual(_evidence_kind_to_role("TECHNICAL"), "technical_evidence")
|
|
self.assertIsNone(_evidence_kind_to_role("other"))
|
|
|
|
def test_prefers_valid_entry_in_list(self) -> None:
|
|
"""Duplicate or noisy ``kind=`` values: first matching token wins."""
|
|
from main import _evidence_kind_to_role
|
|
|
|
self.assertEqual(_evidence_kind_to_role(["", "bad", "research"]), "research_evidence")
|
|
self.assertEqual(_evidence_kind_to_role(["research", "textbook"]), "research_evidence")
|
|
|
|
def test_strips_zwsp_and_bom(self) -> None:
|
|
from main import _evidence_kind_to_role
|
|
|
|
self.assertEqual(_evidence_kind_to_role("research\u200b"), "research_evidence")
|
|
self.assertEqual(_evidence_kind_to_role("\ufeffresearch"), "research_evidence")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|