phase8: expand test coverage and refine docs with gitflow milestones
This commit is contained in:
43
tests/test_provider_adapter.py
Normal file
43
tests/test_provider_adapter.py
Normal file
@ -0,0 +1,43 @@
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
from apps.providers.adapters.mvp_provider import MvpDemoProviderAdapter
|
||||
from apps.providers.exceptions import ProviderNotFoundError, ProviderRateLimitError
|
||||
from apps.providers.registry import get_provider
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_mvp_provider_fetch_and_search_players():
|
||||
adapter = MvpDemoProviderAdapter()
|
||||
|
||||
players = adapter.fetch_players()
|
||||
assert len(players) >= 2
|
||||
|
||||
results = adapter.search_players(query="luca")
|
||||
assert any("Luca" in item["full_name"] for item in results)
|
||||
|
||||
detail = adapter.fetch_player(external_player_id="player-001")
|
||||
assert detail is not None
|
||||
assert detail["full_name"] == "Luca Rinaldi"
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_mvp_provider_rate_limit_signal():
|
||||
os.environ["PROVIDER_MVP_FORCE_RATE_LIMIT"] = "1"
|
||||
adapter = MvpDemoProviderAdapter()
|
||||
|
||||
with pytest.raises(ProviderRateLimitError):
|
||||
adapter.fetch_players()
|
||||
|
||||
os.environ.pop("PROVIDER_MVP_FORCE_RATE_LIMIT", None)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_provider_registry_resolution(settings):
|
||||
settings.PROVIDER_DEFAULT_NAMESPACE = "mvp_demo"
|
||||
provider = get_provider()
|
||||
assert isinstance(provider, MvpDemoProviderAdapter)
|
||||
|
||||
with pytest.raises(ProviderNotFoundError):
|
||||
get_provider("does-not-exist")
|
||||
Reference in New Issue
Block a user