.
This commit is contained in:
47
tests/test_keywords_merge.py
Normal file
47
tests/test_keywords_merge.py
Normal 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, печат, справка"
|
||||
Reference in New Issue
Block a user