test: cover remaining cloud fallback safeguards
This commit is contained in:
@@ -8,11 +8,13 @@ from javis.core.provider_router import HybridProvider
|
||||
from javis.memory.usage_store import ProviderEvent, SQLiteUsageStore
|
||||
from javis.providers.base import (
|
||||
ChatMessage,
|
||||
CloudModelUnavailableError,
|
||||
CloudNetworkError,
|
||||
InvalidApiKeyError,
|
||||
LocalModelProvider,
|
||||
MissingApiKeyError,
|
||||
ProviderRateLimitError,
|
||||
ProviderTimeoutError,
|
||||
ProviderUsage,
|
||||
)
|
||||
from javis.security.privacy import CloudPolicy, PrivacyRouter
|
||||
@@ -167,6 +169,20 @@ class HybridProviderTests(unittest.TestCase):
|
||||
self.assertEqual(answer, "Lokal")
|
||||
self.assertTrue(router.last_route.fallback)
|
||||
|
||||
def test_timeout_and_missing_model_fall_back(self) -> None:
|
||||
for error in (
|
||||
ProviderTimeoutError("timeout"),
|
||||
CloudModelUnavailableError("missing model"),
|
||||
):
|
||||
with self.subTest(error=type(error).__name__):
|
||||
self.cloud.error = error
|
||||
router = self._router()
|
||||
|
||||
answer = router.chat([ChatMessage("user", "Wie funktioniert Python?")])
|
||||
|
||||
self.assertEqual(answer, "Lokal")
|
||||
self.assertTrue(router.last_route.fallback)
|
||||
|
||||
def test_missing_key_falls_back(self) -> None:
|
||||
def missing_key() -> _RecordingProvider:
|
||||
raise MissingApiKeyError("missing")
|
||||
|
||||
Reference in New Issue
Block a user