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")