017 fix returning all tariffs
This commit is contained in:
@@ -64,16 +64,26 @@ def test_post_delivery_price_uses_registered_provider_in_default_dependency(
|
||||
def __init__(self) -> None:
|
||||
self.calls: list[DeliveryRequest] = []
|
||||
|
||||
async def get_price(self, request: DeliveryRequest) -> DeliveryPrice:
|
||||
async def get_prices(self, request: DeliveryRequest) -> list[DeliveryPrice]:
|
||||
self.calls.append(request)
|
||||
return DeliveryPrice(
|
||||
provider=self.name,
|
||||
service_name="stub-service",
|
||||
price=Decimal("123.50"),
|
||||
currency="RUB",
|
||||
delivery_days_min=2,
|
||||
delivery_days_max=3,
|
||||
)
|
||||
return [
|
||||
DeliveryPrice(
|
||||
provider=self.name,
|
||||
service_name="slow",
|
||||
price=Decimal("223.50"),
|
||||
currency="RUB",
|
||||
delivery_days_min=4,
|
||||
delivery_days_max=5,
|
||||
),
|
||||
DeliveryPrice(
|
||||
provider=self.name,
|
||||
service_name="fast",
|
||||
price=Decimal("123.50"),
|
||||
currency="RUB",
|
||||
delivery_days_min=2,
|
||||
delivery_days_max=3,
|
||||
),
|
||||
]
|
||||
|
||||
class StubCDEKProvider:
|
||||
@classmethod
|
||||
@@ -135,11 +145,19 @@ def test_post_delivery_price_uses_registered_provider_in_default_dependency(
|
||||
assert first_response.json() == [
|
||||
{
|
||||
"provider": "stub-provider",
|
||||
"service_name": "stub-service",
|
||||
"service_name": "fast",
|
||||
"price": "124",
|
||||
"currency": "RUB",
|
||||
"delivery_days_min": 2,
|
||||
"delivery_days_max": 3,
|
||||
},
|
||||
{
|
||||
"provider": "stub-provider",
|
||||
"service_name": "slow",
|
||||
"price": "224",
|
||||
"currency": "RUB",
|
||||
"delivery_days_min": 4,
|
||||
"delivery_days_max": 5,
|
||||
}
|
||||
]
|
||||
assert second_response.json() == first_response.json()
|
||||
@@ -148,15 +166,25 @@ def test_post_delivery_price_uses_registered_provider_in_default_dependency(
|
||||
|
||||
|
||||
def test_post_delivery_price_returns_prices_and_delegates_to_service() -> None:
|
||||
expected_price = DeliveryPrice(
|
||||
provider="cdek",
|
||||
service_name="express",
|
||||
price=Decimal("100.50"),
|
||||
currency="RUB",
|
||||
delivery_days_min=1,
|
||||
delivery_days_max=2,
|
||||
)
|
||||
service = StubAggregatorService(response=[expected_price])
|
||||
expected_prices = [
|
||||
DeliveryPrice(
|
||||
provider="cdek",
|
||||
service_name="economy",
|
||||
price=Decimal("150.00"),
|
||||
currency="RUB",
|
||||
delivery_days_min=3,
|
||||
delivery_days_max=5,
|
||||
),
|
||||
DeliveryPrice(
|
||||
provider="cdek",
|
||||
service_name="express",
|
||||
price=Decimal("100.50"),
|
||||
currency="RUB",
|
||||
delivery_days_min=1,
|
||||
delivery_days_max=2,
|
||||
),
|
||||
]
|
||||
service = StubAggregatorService(response=expected_prices)
|
||||
app = create_app()
|
||||
_install_service_override(app, service)
|
||||
|
||||
@@ -171,7 +199,7 @@ def test_post_delivery_price_returns_prices_and_delegates_to_service() -> None:
|
||||
response = asyncio.run(run_request())
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json() == [expected_price.model_dump(mode="json")]
|
||||
assert response.json() == [price.model_dump(mode="json") for price in expected_prices]
|
||||
assert len(service.calls) == 1
|
||||
assert service.calls[0] == DeliveryRequest(
|
||||
entity=DeliveryEntity.INDIVIDUAL,
|
||||
|
||||
Reference in New Issue
Block a user