forked from phoenix/litellm-mirror
(testing) add test coverage for init custom logger class (#6341)
* working test for init custom logger * add test coverage for custom_logger_compatible_class_as_callback
This commit is contained in:
parent
bd9e29b8b9
commit
d1f457d17a
1 changed files with 47 additions and 10 deletions
|
@ -108,6 +108,20 @@ async def use_callback_in_llm_call(
|
|||
return
|
||||
elif callback == "argilla":
|
||||
litellm.argilla_transformation_object = {}
|
||||
elif callback == "openmeter":
|
||||
# it's currently handled in jank way, TODO: fix openmete and then actually run it's test
|
||||
return
|
||||
|
||||
# Mock the httpx call for Argilla dataset retrieval
|
||||
if callback == "argilla":
|
||||
import httpx
|
||||
|
||||
mock_response = httpx.Response(
|
||||
status_code=200, json={"items": [{"id": "mocked_dataset_id"}]}
|
||||
)
|
||||
patch.object(
|
||||
litellm.module_level_client, "get", return_value=mock_response
|
||||
).start()
|
||||
|
||||
# Mock the httpx call for Argilla dataset retrieval
|
||||
if callback == "argilla":
|
||||
|
@ -125,7 +139,7 @@ async def use_callback_in_llm_call(
|
|||
elif used_in == "success_callback":
|
||||
litellm.success_callback = [callback]
|
||||
|
||||
for _ in range(1):
|
||||
for _ in range(5):
|
||||
await litellm.acompletion(
|
||||
model="gpt-3.5-turbo",
|
||||
messages=[{"role": "user", "content": "hi"}],
|
||||
|
@ -137,16 +151,31 @@ async def use_callback_in_llm_call(
|
|||
|
||||
expected_class = callback_class_str_to_classType[callback]
|
||||
|
||||
assert isinstance(litellm._async_success_callback[0], expected_class)
|
||||
assert isinstance(litellm._async_failure_callback[0], expected_class)
|
||||
assert isinstance(litellm.success_callback[0], expected_class)
|
||||
assert isinstance(litellm.failure_callback[0], expected_class)
|
||||
if used_in == "callbacks":
|
||||
assert isinstance(litellm._async_success_callback[0], expected_class)
|
||||
assert isinstance(litellm._async_failure_callback[0], expected_class)
|
||||
assert isinstance(litellm.success_callback[0], expected_class)
|
||||
assert isinstance(litellm.failure_callback[0], expected_class)
|
||||
|
||||
assert len(litellm._async_success_callback) == 1
|
||||
assert len(litellm._async_failure_callback) == 1
|
||||
assert len(litellm.success_callback) == 1
|
||||
assert len(litellm.failure_callback) == 1
|
||||
assert len(litellm.callbacks) == 1
|
||||
assert len(litellm._async_success_callback) == 1
|
||||
assert len(litellm._async_failure_callback) == 1
|
||||
assert len(litellm.success_callback) == 1
|
||||
assert len(litellm.failure_callback) == 1
|
||||
assert len(litellm.callbacks) == 1
|
||||
elif used_in == "success_callback":
|
||||
print(f"litellm.success_callback: {litellm.success_callback}")
|
||||
print(f"litellm._async_success_callback: {litellm._async_success_callback}")
|
||||
assert isinstance(litellm.success_callback[1], expected_class)
|
||||
assert len(litellm.success_callback) == 2 # ["lago", LagoLogger]
|
||||
assert isinstance(litellm._async_success_callback[0], expected_class)
|
||||
assert len(litellm._async_success_callback) == 1
|
||||
|
||||
# TODO also assert that it's not set for failure_callback
|
||||
# As of Oct 21 2024, it's currently set
|
||||
# 1st hoping to add test coverage for just setting in success_callback/_async_success_callback
|
||||
|
||||
if callback == "argilla":
|
||||
patch.stopall()
|
||||
|
||||
if callback == "argilla":
|
||||
patch.stopall()
|
||||
|
@ -156,10 +185,18 @@ async def use_callback_in_llm_call(
|
|||
async def test_init_custom_logger_compatible_class_as_callback():
|
||||
init_env_vars()
|
||||
|
||||
# used like litellm.callbacks = ["prometheus"]
|
||||
for callback in litellm._known_custom_logger_compatible_callbacks:
|
||||
print(f"Testing callback: {callback}")
|
||||
reset_all_callbacks()
|
||||
|
||||
await use_callback_in_llm_call(callback, used_in="callbacks")
|
||||
|
||||
# used like this litellm.success_callback = ["prometheus"]
|
||||
for callback in litellm._known_custom_logger_compatible_callbacks:
|
||||
print(f"Testing callback: {callback}")
|
||||
reset_all_callbacks()
|
||||
|
||||
await use_callback_in_llm_call(callback, used_in="success_callback")
|
||||
|
||||
reset_env_vars()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue