diff --git a/litellm/proxy/guardrails/guardrail_hooks/unified_guardrail/unified_guardrail.py b/litellm/proxy/guardrails/guardrail_hooks/unified_guardrail/unified_guardrail.py index 769d960bfa9..d7528bf4232 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/unified_guardrail/unified_guardrail.py +++ b/litellm/proxy/guardrails/guardrail_hooks/unified_guardrail/unified_guardrail.py @@ -421,8 +421,8 @@ class UnifiedLLMGuardrails(CustomLogger): return data mappings: Final = load_guardrail_translation_mappings() - resolved_call_type: Final = _resolved_call_type(call_type) - if resolved_call_type is None or resolved_call_type not in mappings: + resolved_call_type: Final = CallTypes(call_type) + if resolved_call_type not in mappings: _warn_left_unscanned( guardrail_to_apply=guardrail_to_apply, user_api_key_dict=user_api_key_dict, diff --git a/tests/unit/proxy/guardrails/guardrail_hooks/unified_guardrails/test_unified_guardrail.py b/tests/unit/proxy/guardrails/guardrail_hooks/unified_guardrails/test_unified_guardrail.py index bb34dc9253a..073ed200dc4 100644 --- a/tests/unit/proxy/guardrails/guardrail_hooks/unified_guardrails/test_unified_guardrail.py +++ b/tests/unit/proxy/guardrails/guardrail_hooks/unified_guardrails/test_unified_guardrail.py @@ -3299,24 +3299,18 @@ class TestUnscannedRequestIsAnnounced: assert not any("\r" in message or "\n" in message for message in warnings), warnings @pytest.mark.asyncio - async def test_during_call_warns_instead_of_raising_on_a_call_type_outside_the_enum(self, caplog: pytest.LogCaptureFixture, monkeypatch: pytest.MonkeyPatch) -> None: + async def test_during_call_still_rejects_a_call_type_outside_the_enum(self, monkeypatch: pytest.MonkeyPatch) -> None: _patch_translation_mappings(monkeypatch, load_guardrail_translation_mappings()) guardrail: Final = RecordingGuardrail() - with self._capturing(caplog): - returned: Final = await UnifiedLLMGuardrails().async_moderation_hook( + with pytest.raises(ValueError, match="acompact_responses"): + await UnifiedLLMGuardrails().async_moderation_hook( data=self._request(guardrail), user_api_key_dict=UserAPIKeyAuth(api_key="test-key", request_route="/v1/responses/compact"), call_type="acompact_responses", ) assert guardrail.apply_calls == [] - assert returned["messages"] == [{"role": "user", "content": "hello world"}] - assert any( - "call type 'acompact_responses' is not one litellm can scan" in message - and "skipping during-call scanning" in message - for message in self._warnings(caplog) - ), self._warnings(caplog) async def _pre_call_on(self, guardrail: CustomGuardrail, request_route: str, call_type: str | None) -> None: await UnifiedLLMGuardrails().async_pre_call_hook(