grantforge-api / backend /tests /test_eligibility_fields.py
GrantForge Bot
Deploy sha-9a5957fcdef15b7e2623f8b147cda6026475aee0 — source build (no GHCR)
3a3734f
Raw
History Blame Contribute Delete
1.76 kB
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")