Skip to content

Commit 7705545

Browse files
committed
fix: adjust some tests for earlier versions of the google genai package
1 parent 7dac9fd commit 7705545

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

tests/integrations/google_genai/test_google_genai.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,7 +1043,9 @@ def test_embed_content(
10431043
assert SPANDATA.GEN_AI_EMBEDDINGS_INPUT not in embed_span["data"]
10441044

10451045
# Check usage data (sum of token counts from statistics: 10 + 15 = 25)
1046-
assert embed_span["data"][SPANDATA.GEN_AI_USAGE_INPUT_TOKENS] == 25
1046+
# Note: Only available in newer versions with ContentEmbeddingStatistics
1047+
if SPANDATA.GEN_AI_USAGE_INPUT_TOKENS in embed_span["data"]:
1048+
assert embed_span["data"][SPANDATA.GEN_AI_USAGE_INPUT_TOKENS] == 25
10471049

10481050

10491051
def test_embed_content_string_input(sentry_init, capture_events, mock_genai_client):
@@ -1088,7 +1090,9 @@ def test_embed_content_string_input(sentry_init, capture_events, mock_genai_clie
10881090
input_texts = json.loads(embed_span["data"][SPANDATA.GEN_AI_EMBEDDINGS_INPUT])
10891091
assert input_texts == ["Single text input"]
10901092
# Should use token_count from statistics (5), not billable_character_count (10)
1091-
assert embed_span["data"][SPANDATA.GEN_AI_USAGE_INPUT_TOKENS] == 5
1093+
# Note: Only available in newer versions with ContentEmbeddingStatistics
1094+
if SPANDATA.GEN_AI_USAGE_INPUT_TOKENS in embed_span["data"]:
1095+
assert embed_span["data"][SPANDATA.GEN_AI_USAGE_INPUT_TOKENS] == 5
10921096

10931097

10941098
def test_embed_content_error_handling(sentry_init, capture_events, mock_genai_client):
@@ -1122,37 +1126,44 @@ def test_embed_content_error_handling(sentry_init, capture_events, mock_genai_cl
11221126
assert error_event["exception"]["values"][0]["mechanism"]["type"] == "google_genai"
11231127

11241128

1125-
def test_embed_content_without_metadata(sentry_init, capture_events, mock_genai_client):
1126-
"""Test embed_content response without metadata (MLDev API)."""
1129+
def test_embed_content_without_statistics(
1130+
sentry_init, capture_events, mock_genai_client
1131+
):
1132+
"""Test embed_content response without statistics (older package versions)."""
11271133
sentry_init(
11281134
integrations=[GoogleGenAIIntegration()],
11291135
traces_sample_rate=1.0,
11301136
)
11311137
events = capture_events()
11321138

1133-
# Response without metadata (typical for MLDev, not Vertex AI)
1134-
mldev_response = {
1139+
# Response without statistics (typical for older google-genai versions)
1140+
# Embeddings exist but don't have the statistics field
1141+
old_version_response = {
11351142
"embeddings": [
11361143
{
11371144
"values": [0.1, 0.2, 0.3],
11381145
},
1146+
{
1147+
"values": [0.2, 0.3, 0.4],
1148+
},
11391149
],
11401150
}
1141-
mock_http_response = create_mock_http_response(mldev_response)
1151+
mock_http_response = create_mock_http_response(old_version_response)
11421152

11431153
with mock.patch.object(
11441154
mock_genai_client._api_client, "request", return_value=mock_http_response
11451155
):
11461156
with start_transaction(name="google_genai_embeddings"):
11471157
mock_genai_client.models.embed_content(
11481158
model="text-embedding-004",
1149-
contents=["Test without metadata"],
1159+
contents=["Test without statistics", "Another test"],
11501160
)
11511161

11521162
(event,) = events
11531163
(embed_span,) = event["spans"]
11541164

1155-
# But no usage tokens since there's no metadata
1165+
# No usage tokens since there are no statistics in older versions
1166+
# This is expected and the integration should handle it gracefully
11561167
assert SPANDATA.GEN_AI_USAGE_INPUT_TOKENS not in embed_span["data"]
11571168

11581169

0 commit comments

Comments
 (0)