Spaces:
Running
Running
| """Tests for gazet.schemas — Pydantic models.""" | |
| from gazet.schemas import Place, PlacesResult | |
| class TestPlace: | |
| def test_minimal(self): | |
| p = Place(place="Paris") | |
| assert p.place == "Paris" | |
| assert p.country is None | |
| assert p.subtype is None | |
| def test_all_fields(self): | |
| p = Place(place="Odisha", country="IN", subtype="region") | |
| assert p.place == "Odisha" | |
| assert p.country == "IN" | |
| assert p.subtype == "region" | |
| def test_default_none_explicit(self): | |
| p = Place(place="Loja", country=None, subtype=None) | |
| assert p.country is None | |
| assert p.subtype is None | |
| def test_model_dump(self): | |
| p = Place(place="Brazil", country="BR") | |
| d = p.model_dump() | |
| assert d["place"] == "Brazil" | |
| assert d["country"] == "BR" | |
| assert d["subtype"] is None | |
| def test_rejects_missing_place(self): | |
| import pytest | |
| with pytest.raises(Exception): # pydantic validation error | |
| Place() # pragma: no cover | |
| class TestPlacesResult: | |
| def test_single_place(self): | |
| r = PlacesResult(places=[Place(place="India")]) | |
| assert len(r.places) == 1 | |
| assert r.places[0].place == "India" | |
| def test_multiple_places(self): | |
| r = PlacesResult( | |
| places=[ | |
| Place(place="Ecuador"), | |
| Place(place="Amazon basin"), | |
| ] | |
| ) | |
| assert len(r.places) == 2 | |
| assert r.places[0].place == "Ecuador" | |
| assert r.places[1].place == "Amazon basin" | |
| def test_empty(self): | |
| r = PlacesResult(places=[]) | |
| assert len(r.places) == 0 | |
| def test_model_validate_from_dict(self): | |
| data = { | |
| "places": [ | |
| {"place": "Chad"}, | |
| {"place": "Lake Chad", "country": "TD", "subtype": "lake"}, | |
| ] | |
| } | |
| r = PlacesResult.model_validate(data) | |
| assert len(r.places) == 2 | |
| assert r.places[1].country == "TD" | |
| assert r.places[1].subtype == "lake" | |
| def test_places_are_place_instances(self): | |
| r = PlacesResult(places=[Place(place="Nairobi")]) | |
| assert isinstance(r.places[0], Place) | |