Добавлен tomtom
This commit is contained in:
@@ -99,6 +99,18 @@ def test_post_address_suggest_uses_registered_provider_in_default_dependency(
|
||||
_ = config
|
||||
return stub_yandex_provider
|
||||
|
||||
class StubTomTomAddressSuggestionProvider:
|
||||
@classmethod
|
||||
def from_config(
|
||||
cls,
|
||||
*,
|
||||
http_client,
|
||||
config,
|
||||
) -> StubAddressProvider:
|
||||
assert http_client is stub_http_client
|
||||
_ = config
|
||||
return stub_tomtom_provider
|
||||
|
||||
class StubCache:
|
||||
async def get(self, key: str) -> object | None:
|
||||
_ = key
|
||||
@@ -138,6 +150,17 @@ def test_post_address_suggest_uses_registered_provider_in_default_dependency(
|
||||
)
|
||||
],
|
||||
)
|
||||
stub_tomtom_provider = StubAddressProvider(
|
||||
"tomtom",
|
||||
[
|
||||
AddressSuggestion(
|
||||
address="Alexanderplatz 1, 10178 Berlin",
|
||||
street="Alexanderplatz",
|
||||
house="1",
|
||||
postal_code="10178",
|
||||
)
|
||||
],
|
||||
)
|
||||
http_client_timeouts: list[float] = []
|
||||
|
||||
def fake_build_controller_http_client(timeout_seconds: float) -> StubHttpClient:
|
||||
@@ -160,13 +183,18 @@ def test_post_address_suggest_uses_registered_provider_in_default_dependency(
|
||||
"YandexGeosuggestAddressSuggestionProvider",
|
||||
StubYandexGeosuggestAddressSuggestionProvider,
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
delivery_controller,
|
||||
"TomTomAddressSuggestionProvider",
|
||||
StubTomTomAddressSuggestionProvider,
|
||||
)
|
||||
monkeypatch.setattr(delivery_controller, "PriceCache", StubPriceCache)
|
||||
|
||||
app = create_app()
|
||||
request_payload = _valid_payload(
|
||||
country_code="AM",
|
||||
city="Yerevan",
|
||||
query="Tumanyan 12",
|
||||
country_code="DE",
|
||||
city="Berlin",
|
||||
query="Alexanderplatz 1",
|
||||
)
|
||||
|
||||
async def run_request() -> httpx.Response:
|
||||
@@ -185,16 +213,17 @@ def test_post_address_suggest_uses_registered_provider_in_default_dependency(
|
||||
assert response.status_code == 200
|
||||
assert response.json() == [
|
||||
{
|
||||
"address": "Tumanyan Street, 12, Yerevan",
|
||||
"street": "Tumanyan Street",
|
||||
"house": "12",
|
||||
"address": "Alexanderplatz 1, 10178 Berlin",
|
||||
"street": "Alexanderplatz",
|
||||
"house": "1",
|
||||
"flat": None,
|
||||
"postal_code": None,
|
||||
"postal_code": "10178",
|
||||
}
|
||||
]
|
||||
assert http_client_timeouts == [10.0]
|
||||
assert stub_dadata_provider.calls == []
|
||||
assert stub_yandex_provider.calls == [AddressSuggestRequest(**request_payload)]
|
||||
assert stub_yandex_provider.calls == []
|
||||
assert stub_tomtom_provider.calls == [AddressSuggestRequest(**request_payload)]
|
||||
|
||||
|
||||
def test_post_address_suggest_returns_response_and_delegates_to_service() -> None:
|
||||
|
||||
Reference in New Issue
Block a user