"""Фикстурный клиент Nova Poshta для тестов — не ходит в сеть.""" from __future__ import annotations from app.schemas.tracking import TrackingStatusOut _FIXTURE_STATUSES: dict[str, dict] = { "20450123456789": { "Number": "20450123456789", "Status": "Відправлення отримано", "StatusCode": "9", "PaymentMethod": "Cash", "ScheduledDeliveryDate": "22-09-2026 18:00:00", "ActualDeliveryDate": "22-09-2026 15:30:00", "AmountToPay": "1200.00", "AfterpaymentOnGoodsCost": 1200, "PaymentStatus": "Paid", } } class StubNovaPoshtaClient: def __init__(self, statuses: dict[str, dict] | None = None) -> None: self._statuses = statuses if statuses is not None else _FIXTURE_STATUSES async def get_statuses(self, *, waybill_numbers: list[str]) -> list[TrackingStatusOut]: return [ TrackingStatusOut.model_validate(self._statuses[number]) for number in waybill_numbers if number in self._statuses ]