mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from backend.magic_plan.magic_plan_trigger_request import MagicPlanTriggerRequest
|
|
|
|
|
|
def test_valid_payload_with_address_only() -> None:
|
|
# Arrange
|
|
payload = {"address": "123 High St London SW1A 1AA"}
|
|
# Act
|
|
req = MagicPlanTriggerRequest.model_validate(payload)
|
|
# Assert
|
|
assert req.address == "123 High St London SW1A 1AA"
|
|
assert req.uprn is None
|
|
|
|
|
|
def test_valid_payload_with_uprn() -> None:
|
|
# Arrange
|
|
payload = {"address": "123 High St London SW1A 1AA", "uprn": "100023336956"}
|
|
# Act
|
|
req = MagicPlanTriggerRequest.model_validate(payload)
|
|
# Assert
|
|
assert req.uprn == "100023336956"
|
|
|
|
|
|
def test_missing_address_raises() -> None:
|
|
# Arrange
|
|
payload = {"uprn": "100023336956"}
|
|
# Act / Assert
|
|
with pytest.raises(ValidationError):
|
|
MagicPlanTriggerRequest.model_validate(payload)
|
|
|
|
|
|
def test_extra_fields_ignored() -> None:
|
|
# Arrange
|
|
payload = {"address": "123 High St London SW1A 1AA", "unknown_field": "whatever"}
|
|
# Act
|
|
req = MagicPlanTriggerRequest.model_validate(payload)
|
|
# Assert
|
|
assert req.address == "123 High St London SW1A 1AA"
|