Model/backend/address2UPRN/tests/test_csv.py
2026-04-27 11:32:44 +00:00

39 lines
930 B
Python

# tests/test_address_to_uprn_csv.py
import csv
import pytest
from pathlib import Path
from backend.address2UPRN.main import get_uprn
FIXTURE_PATH = Path(__file__).parent / "test_data.csv"
def load_test_cases():
with open(FIXTURE_PATH, newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
return [
pytest.param(
row["User Input"],
row["Postcode"],
row["Manual UPRN Code"],
id=f'{row["User Input"]} [{row["Postcode"]}]',
)
for row in reader
]
@pytest.mark.parametrize(
"user_input,postcode,expected_uprn",
load_test_cases(),
)
def test_uprn_resolution_matches_manual(
user_input: str,
postcode: str,
expected_uprn: str,
):
uprn = get_uprn(user_input, postcode)
if uprn:
assert uprn == expected_uprn
else:
assert str(uprn) == expected_uprn