from core.grants.eligibility_fields import ( parse_amount_pln, parse_beneficiary_tags, parse_eligible_company_sizes, parse_eligible_regions, extract_pkd_hints, is_exclusive_beneficiary, ) from core.grants.wyszukiwarka_mapper import map_wyszukiwarka_entry def test_parse_beneficiary_tags_msp_ngo(): tags = parse_beneficiary_tags("Program dla MŚP i organizacji pozarządowych") assert "mśp" in tags assert "ngo" in tags def test_parse_eligible_regions_rpo(): regions = parse_eligible_regions("RPO Łódzkie", "", "", "Nabór regionalny") assert any("łódzkie" in r for r in regions) def test_parse_amount_pln_mln(): assert parse_amount_pln("do 2 mln zł") == 2_000_000 assert parse_amount_pln("300 000 PLN") == 300_000 def test_map_wyszukiwarka_entry_enriches_fields(): entry = { "id": "test-1", "nazwa": "Dotacja dla MŚP w Łódzkiem", "operator": "RPO Łódzkie", "zrodlo": "RPO Łódzkie", "beneficjenci": "Mikro, małe i średnie przedsiębiorstwa", "warunki_wejscia": "PKD 62.01.Z, wkład własny min. 20%", "kwota_max": "500 000 zł", "link_strona": "https://example.com/nabor", "status": "otwarty", "poziom_weryfikacji": "operator", } mapped = map_wyszukiwarka_entry(entry) assert mapped is not None assert mapped["max_dofinansowanie_pln"] == 500_000 assert "mikro" in mapped["eligible_company_sizes"] assert any("łódzkie" in r for r in mapped["eligible_regions"]) assert "62.01.Z" in mapped["eligible_pkd"] assert "mśp" in mapped["beneficiary_tags"] def test_exclusive_ngo(): assert is_exclusive_beneficiary("Wyłącznie dla organizacji pozarządowych", "ngo")