litellm/tests/unit/telemetry/test_records.py
devin-ai-integration[bot] f3a560b73c
feat(telemetry): add litellm.telemetry records, semantic group consent and sink protocol (#45484)
* feat(telemetry): add litellm.telemetry records, consent groups and sink protocol

* docs(telemetry): reword TelemetryGroup docstring and drop module docstring

* fix(telemetry): add timeout and connection_error status classes, check relative imports in the package boundary test

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: nate <nate@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-13 18:19:22 -07:00

22 lines
675 B
Python

import pytest
from litellm.telemetry.records import StatusClass
@pytest.mark.parametrize(
("status_code", "expected"),
[
(None, StatusClass.NONE),
(199, StatusClass.NONE),
(200, StatusClass.SUCCESS),
(299, StatusClass.SUCCESS),
(301, StatusClass.REDIRECT),
(400, StatusClass.CLIENT_ERROR),
(429, StatusClass.CLIENT_ERROR),
(500, StatusClass.SERVER_ERROR),
(599, StatusClass.SERVER_ERROR),
(600, StatusClass.NONE),
],
)
def test_status_code_maps_to_its_class(status_code: int | None, expected: StatusClass) -> None:
assert StatusClass.from_status_code(status_code) is expected