31 lines
944 B
Python
31 lines
944 B
Python
import unittest
|
|||
|
|
from unittest.mock import AsyncMock
|
||
|
|
|
||
|
|
from service.customer_agent.config import DatabaseConfigProvider
|
||
|
|
|
||
|
|
|
||
|
|
class ConfigProviderTests(unittest.IsolatedAsyncioTestCase):
|
||
|
|
async def test_reads_sys_config_value_and_uses_default_when_missing(self):
|
||
|
|
repo = AsyncMock()
|
||
|
|
repo.get_value.side_effect = ["120", "fallback"]
|
||
|
|
|
||
|
|
class SessionContext:
|
||
|
|
async def __aenter__(self):
|
||
|
|
return object()
|
||
|
|
|
||
|
|
async def __aexit__(self, *args):
|
||
|
|
pass
|
||
|
|
|
||
|
|
provider = DatabaseConfigProvider(
|
||
|
|
repo_factory=lambda session: repo,
|
||
|
|
session_factory=lambda: SessionContext(),
|
||
|
|
)
|
||
|
|
|
||
|
|
self.assertEqual(await provider.get("agent.customer.session.ttl", "60"), "120")
|
||
|
|
self.assertEqual(await provider.get("missing", "fallback"), "fallback")
|
||
|
|
self.assertEqual(repo.get_value.await_count, 2)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
unittest.main()
|