@@ -0,0 +1,50 @@
|
||||
import asyncio
|
||||
|
||||
import httpx
|
||||
|
||||
from app.adapters.delivery_providers.registry import (
|
||||
build_delivery_provider_registry,
|
||||
resolve_delivery_provider_timeout_seconds,
|
||||
)
|
||||
from app.config import (
|
||||
CDEKDeliveryProviderConfig,
|
||||
CSEDeliveryProviderConfig,
|
||||
DeliveryProvidersConfig,
|
||||
)
|
||||
|
||||
|
||||
def test_registry_builds_enabled_provider_capability_maps() -> None:
|
||||
config = DeliveryProvidersConfig(
|
||||
cdek=CDEKDeliveryProviderConfig(
|
||||
base_url="https://cdek.test/v2",
|
||||
client_id="id",
|
||||
client_secret="secret",
|
||||
cache_ttl_seconds=111,
|
||||
),
|
||||
cse=CSEDeliveryProviderConfig(
|
||||
enabled=False,
|
||||
),
|
||||
)
|
||||
|
||||
http_client = httpx.AsyncClient()
|
||||
try:
|
||||
registry = build_delivery_provider_registry(
|
||||
http_client=http_client,
|
||||
config=config,
|
||||
)
|
||||
finally:
|
||||
asyncio.run(http_client.aclose())
|
||||
|
||||
assert [provider.name for provider in registry.providers] == ["cdek"]
|
||||
assert sorted(registry.payment_price_validation_adapters) == ["cdek"]
|
||||
assert sorted(registry.order_registration_adapters) == ["cdek"]
|
||||
assert registry.providers[0].cache_ttl_seconds == 111
|
||||
|
||||
|
||||
def test_resolve_delivery_provider_timeout_uses_max_enabled_timeout() -> None:
|
||||
config = DeliveryProvidersConfig(
|
||||
cdek=CDEKDeliveryProviderConfig(timeout_seconds=3.0),
|
||||
cse=CSEDeliveryProviderConfig(timeout_seconds=7.5),
|
||||
)
|
||||
|
||||
assert resolve_delivery_provider_timeout_seconds(config) == 7.5
|
||||
Reference in New Issue
Block a user