This commit is contained in:
2026-09-11 14:49:03 +03:00
parent 695fca0d84
commit 1d06e8c7a4
4 changed files with 131 additions and 3 deletions

View File

@@ -0,0 +1,47 @@
"""Ръчните ключови думи стоят първи във всяка секция, без дубликати."""
from help_processor import merge_section_keywords, parse_keyword_list
def test_parse_comma_phrases():
assert parse_keyword_list("лимитни карти, справка, ATR") == [
"лимитни карти",
"справка",
"ATR",
]
def test_parse_space_separated_words():
assert parse_keyword_list("лимит справка ATR") == ["лимит", "справка", "ATR"]
def test_empty_manual_keeps_generated_only():
assert merge_section_keywords("", "а, б, в") == "а, б, в"
assert merge_section_keywords(" ", "а, б") == "а, б"
assert merge_section_keywords("", "") == ""
def test_manual_keywords_prepended_on_every_section():
generated = "справка, печат, експорт"
merged = merge_section_keywords("лимитни карти, ATR", generated)
assert merged == "лимитни карти, ATR, справка, печат, експорт"
def test_dedup_keeps_manual_first():
# моделът повтаря ръчна дума — остава само първата (ръчната)
merged = merge_section_keywords("ATR, справка", "справка, ATR, печат")
assert merged == "ATR, справка, печат"
def test_dedup_is_case_insensitive():
merged = merge_section_keywords("atr", "ATR, печат")
assert merged == "atr, печат"
def test_same_manual_list_for_two_sections():
seed = "лимитни карти, ATR"
a = merge_section_keywords(seed, "въвеждане, карта")
b = merge_section_keywords(seed, "печат, справка")
assert a.startswith("лимитни карти, ATR,")
assert b.startswith("лимитни карти, ATR,")
assert a == "лимитни карти, ATR, въвеждане, карта"
assert b == "лимитни карти, ATR, печат, справка"