Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
a7758b5
fix(litellm): Avoid double span exits when streaming
alexander-alderman-webb Apr 1, 2026
3f761e9
simplify
alexander-alderman-webb Apr 1, 2026
1f94674
test cleanup
alexander-alderman-webb Apr 1, 2026
c31472c
docs
alexander-alderman-webb Apr 1, 2026
50d0b1f
use underscore
alexander-alderman-webb Apr 2, 2026
edd8a90
test(litellm): Replace mocks with httpx types in nonstreaming tests
alexander-alderman-webb Apr 2, 2026
ec3d128
add fixture
alexander-alderman-webb Apr 2, 2026
a4b9b3a
more mocks
alexander-alderman-webb Apr 7, 2026
9ae99be
update tox
alexander-alderman-webb Apr 7, 2026
c5b92c8
test(litellm): Remove mocks with httpx types in embedding tests
alexander-alderman-webb Apr 10, 2026
ad16c7f
test(litellm): Replace mocks with httpx types in rate-limit test
alexander-alderman-webb Apr 10, 2026
6f3c247
cleanup
alexander-alderman-webb Apr 10, 2026
dda374f
Merge branch 'webb/litellm/remove-mocks' into webb/litellm/embedding-…
alexander-alderman-webb Apr 10, 2026
b622a07
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/error-mock
alexander-alderman-webb Apr 10, 2026
598d6b5
undo merge
alexander-alderman-webb Apr 10, 2026
a7dfb23
.
alexander-alderman-webb Apr 10, 2026
a8689cd
remove fixture
alexander-alderman-webb Apr 10, 2026
99de614
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/rate-li…
alexander-alderman-webb Apr 10, 2026
c8d86a8
add fixture
alexander-alderman-webb Apr 10, 2026
ecd3718
Merge branch 'master' into webb/litellm/close-spans
alexander-alderman-webb Apr 10, 2026
0536025
re-run tox
alexander-alderman-webb Apr 10, 2026
62c32cb
Merge branch 'master' into webb/litellm/close-spans
alexander-alderman-webb Apr 10, 2026
f352bba
Merge branch 'webb/litellm/close-spans' into webb/litellm/remove-mocks
alexander-alderman-webb Apr 10, 2026
d9cf8b0
Merge branch 'webb/litellm/remove-mocks' into webb/litellm/embedding-…
alexander-alderman-webb Apr 10, 2026
4226d2c
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/rate-li…
alexander-alderman-webb Apr 10, 2026
54925ab
patch completions client instead of embeddings
alexander-alderman-webb Apr 10, 2026
a2b3585
make request headers consistent
alexander-alderman-webb Apr 10, 2026
179f14b
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/rate-li…
alexander-alderman-webb Apr 10, 2026
6eb17c9
reset all executor references
alexander-alderman-webb Apr 10, 2026
1b28574
merge
alexander-alderman-webb Apr 10, 2026
ce5ce74
delete span when finished
alexander-alderman-webb Apr 13, 2026
8435f36
safe exit pattern
alexander-alderman-webb Apr 13, 2026
392eb17
Merge branch 'webb/litellm/close-spans' into webb/litellm/remove-mocks
alexander-alderman-webb Apr 13, 2026
6d52689
Merge branch 'webb/litellm/remove-mocks' into webb/litellm/embedding-…
alexander-alderman-webb Apr 13, 2026
9eac0f8
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/rate-li…
alexander-alderman-webb Apr 13, 2026
5dc9bbe
update tox.ini again
alexander-alderman-webb Apr 13, 2026
0882066
Merge branch 'master' into webb/litellm/close-spans
alexander-alderman-webb Apr 13, 2026
ee4d55c
tox run
alexander-alderman-webb Apr 13, 2026
d9b9700
Merge branch 'webb/litellm/remove-mocks' into webb/litellm/embedding-…
alexander-alderman-webb Apr 13, 2026
73e9bc1
Merge branch 'webb/litellm/embedding-tests' into webb/litellm/rate-li…
alexander-alderman-webb Apr 13, 2026
5ccf360
merge master
alexander-alderman-webb Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -1127,6 +1127,28 @@ def inner(response_content, serialize_pydantic=False, request_headers=None):
return inner


@pytest.fixture
def get_rate_limit_model_response():
def inner(request_headers=None):
if request_headers is None:
request_headers = {}

model_request = HttpxRequest(
"POST",
"/responses",
headers=request_headers,
)

response = HttpxResponse(
429,
request=model_request,
)

return response

return inner


@pytest.fixture
def streaming_chat_completions_model_response():
return [
Expand Down
31 changes: 18 additions & 13 deletions tests/integrations/litellm/test_litellm.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,9 @@ def test_embeddings_no_pii(
assert SPANDATA.GEN_AI_EMBEDDINGS_INPUT not in span["data"]


def test_exception_handling(sentry_init, capture_events):
def test_exception_handling(
reset_litellm_executor, sentry_init, capture_events, get_rate_limit_model_response
):
sentry_init(
integrations=[LiteLLMIntegration()],
traces_sample_rate=1.0,
Expand All @@ -474,19 +476,22 @@ def test_exception_handling(sentry_init, capture_events):

messages = [{"role": "user", "content": "Hello!"}]

with start_transaction(name="litellm test"):
kwargs = {
"model": "gpt-3.5-turbo",
"messages": messages,
}
client = OpenAI(api_key="test-key")

_input_callback(kwargs)
_failure_callback(
kwargs,
Exception("API rate limit reached"),
datetime.now(),
datetime.now(),
)
model_response = get_rate_limit_model_response()

with mock.patch.object(
client.completions._client._client,
"send",
return_value=model_response,
):
with start_transaction(name="litellm test"):
with pytest.raises(litellm.RateLimitError):
litellm.completion(
model="gpt-3.5-turbo",
messages=messages,
client=client,
)

# Should have error event and transaction
assert len(events) >= 1
Expand Down
Loading