diff --git a/litellm/repositories/config_repository.py b/litellm/repositories/config_repository.py index 5cf5dafcce5..8c13ab7509a 100644 --- a/litellm/repositories/config_repository.py +++ b/litellm/repositories/config_repository.py @@ -83,18 +83,6 @@ class ConfigRepository: param_value = _decoded_json(param_value) return ConfigParam(param_name=param_name, param_value=param_value) - async def get_params(self, param_names: Sequence[str]) -> tuple[ConfigParam, ...]: - if not param_names: - return () - records: Final = await self._config_table.find_many(where={"param_name": {"in": tuple(param_names)}}) - return tuple( - ConfigParam( - record.param_name, - _decoded_json(record.param_value) if isinstance(record.param_value, str) else record.param_value, - ) - for record in records - ) - async def set_param(self, param_name: str, param_value: object) -> ConfigParam: """Set a config parameter in the database.""" value_json: Final = json.dumps(param_value) if not isinstance(param_value, str) else param_value diff --git a/tests/unit/repositories/test_config_repository.py b/tests/unit/repositories/test_config_repository.py index 6c37a78b6ec..4f2f958e475 100644 --- a/tests/unit/repositories/test_config_repository.py +++ b/tests/unit/repositories/test_config_repository.py @@ -8,20 +8,19 @@ from litellm.repositories.config_repository import ConfigRepository @pytest.mark.asyncio -async def test_batch_reads_decode_legacy_json_and_current_objects_from_writer() -> None: - find_many: Final = AsyncMock( - return_value=( - SimpleNamespace(param_name="first", param_value='{"status":"resolved"}'), - SimpleNamespace(param_name="second", param_value={"status": "dismissed"}), - ) - ) - prisma: Final = SimpleNamespace(writer_db=SimpleNamespace(litellm_config=SimpleNamespace(find_many=find_many))) +@pytest.mark.parametrize( + ("stored", "expected"), + ( + ('{"status":"resolved"}', {"status": "resolved"}), + ({"status": "dismissed"}, {"status": "dismissed"}), + (None, None), + ), +) +async def test_reads_decode_legacy_json_and_current_objects_from_writer(stored: object, expected: object) -> None: + record: Final = None if stored is None else SimpleNamespace(param_name="status", param_value=stored) + find_unique: Final = AsyncMock(return_value=record) + prisma: Final = SimpleNamespace(writer_db=SimpleNamespace(litellm_config=SimpleNamespace(find_unique=find_unique))) repository: Final = ConfigRepository(prisma, use_writer=True) - rows: Final = await repository.get_params(("first", "second", "absent")) - assert {row.param_name: row.param_value for row in rows} == { - "first": {"status": "resolved"}, - "second": {"status": "dismissed"}, - } - find_many.assert_awaited_once_with(where={"param_name": {"in": ("first", "second", "absent")}}) - assert await repository.get_params(()) == () - assert find_many.await_count == 1 + row: Final = await repository.get_param("status") + assert (row.param_value if row is not None else None) == expected + find_unique.assert_awaited_once_with(where={"param_name": "status"})