"""Ръчните ключови думи стоят първи във всяка секция, без дубликати.""" 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, печат, справка"