mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
validate magicplan trigger request basemodel object 🟩
This commit is contained in:
parent
06567c2844
commit
5b92c31302
4 changed files with 50 additions and 0 deletions
0
backend/magic_plan/__init__.py
Normal file
0
backend/magic_plan/__init__.py
Normal file
10
backend/magic_plan/magic_plan_trigger_request.py
Normal file
10
backend/magic_plan/magic_plan_trigger_request.py
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class MagicPlanTriggerRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="ignore")
|
||||
|
||||
address: str
|
||||
uprn: Optional[str] = None
|
||||
0
backend/magic_plan/tests/__init__.py
Normal file
0
backend/magic_plan/tests/__init__.py
Normal file
40
backend/magic_plan/tests/test_magic_plan_trigger_request.py
Normal file
40
backend/magic_plan/tests/test_magic_plan_trigger_request.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
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"
|
||||
Loading…
Add table
Reference in a new issue