diff --git a/apps/api/tests/test_ollama_failover_manager.py b/apps/api/tests/test_ollama_failover_manager.py index 262a80c21..914a66689 100644 --- a/apps/api/tests/test_ollama_failover_manager.py +++ b/apps/api/tests/test_ollama_failover_manager.py @@ -23,7 +23,7 @@ OllamaFailoverManager 單元測試 - P1.1c v4.0 from __future__ import annotations import asyncio -from unittest.mock import ANY, AsyncMock, MagicMock, patch +from unittest.mock import ANY, AsyncMock, MagicMock, create_autospec, patch import pytest @@ -402,7 +402,22 @@ class TestSelectProvider: gcp_b_status=HealthStatus.HEALTHY, local_status=HealthStatus.OFFLINE, ) - recovery_callback = AsyncMock() + async def metadata_callback( + provider_name: str, + *, + observation_generation: int, + observation_started_at_monotonic: float, + ) -> None: + _ = ( + provider_name, + observation_generation, + observation_started_at_monotonic, + ) + + # Bare AsyncMock signature reporting varies across runner Python patch + # versions. Autospec the production callback contract so this test + # verifies our metadata boundary instead of unittest.mock internals. + recovery_callback = create_autospec(metadata_callback) manager.set_recovery_callback(recovery_callback) audit = AsyncMock()