From baca62df136bc7e7337b2bb3326e38aaf079dcac Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Wed, 16 Sep 2026 13:53:28 -0700 Subject: [PATCH 1/2] test(logging): pick this test's own records out of the shared log batch The generic API logger batches whatever is queued when it flushes, so records from tests in other files in the same job land in the same request. Two tests assumed otherwise: one read actual_request[0], the other counted NDJSON lines, and both broke whenever another file logged first. Select by the messages each test sent instead, which keeps the format assertions and stops the order from deciding the outcome. --- .../test_generic_api_callback.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/logging_callback_tests/test_generic_api_callback.py b/tests/logging_callback_tests/test_generic_api_callback.py index 29d8f9e5694..2c62741ed38 100644 --- a/tests/logging_callback_tests/test_generic_api_callback.py +++ b/tests/logging_callback_tests/test_generic_api_callback.py @@ -98,8 +98,15 @@ async def test_generic_api_callback(): assert isinstance(actual_request, list), "Request body should be a list" assert len(actual_request) > 0, "Request body list should not be empty" - # Validate the first payload item - payload_item: StandardLoggingPayload = StandardLoggingPayload(**actual_request[0]) + this_test_messages = [{"role": "user", "content": "Hello, world!"}] + mine = [ + item for item in actual_request if item.get("messages") == this_test_messages + ] + assert ( + len(mine) == 1 + ), f"Expected this test's single call in the batch, got {len(mine)} of {len(actual_request)}" + + payload_item: StandardLoggingPayload = StandardLoggingPayload(**mine[0]) print("##########\n") print(json.dumps(payload_item, indent=4)) print("##########\n") @@ -448,11 +455,15 @@ async def test_generic_api_callback_sumologic_uses_ndjson(): assert isinstance(ndjson_data, str), "Data should be a string for NDJSON" lines = ndjson_data.strip().split("\n") - assert len(lines) == 2, f"Expected 2 lines of NDJSON, got {len(lines)}" + records = [json.loads(line) for line in lines] - # Each line should be valid JSON - for line in lines: - json.loads(line) # Will raise if invalid JSON + this_test_messages = [ + [{"role": "user", "content": f"Test {i}"}] for i in range(2) + ] + mine = [record for record in records if record.get("messages") in this_test_messages] + assert ( + len(mine) == 2 + ), f"Expected this test's 2 calls as NDJSON lines, got {len(mine)} of {len(records)}" @pytest.mark.asyncio From 0de187e76cc0268bdf8e19e73b3cdaac80015bd2 Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Wed, 16 Sep 2026 14:34:13 -0700 Subject: [PATCH 2/2] style(test): annotate the new locals as Final --- .../test_generic_api_callback.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/logging_callback_tests/test_generic_api_callback.py b/tests/logging_callback_tests/test_generic_api_callback.py index 2c62741ed38..d9853ebcb52 100644 --- a/tests/logging_callback_tests/test_generic_api_callback.py +++ b/tests/logging_callback_tests/test_generic_api_callback.py @@ -10,6 +10,7 @@ import httpx import json import logging import time +from typing import Final from unittest.mock import AsyncMock, patch import pytest @@ -98,8 +99,8 @@ async def test_generic_api_callback(): assert isinstance(actual_request, list), "Request body should be a list" assert len(actual_request) > 0, "Request body list should not be empty" - this_test_messages = [{"role": "user", "content": "Hello, world!"}] - mine = [ + this_test_messages: Final = [{"role": "user", "content": "Hello, world!"}] + mine: Final = [ item for item in actual_request if item.get("messages") == this_test_messages ] assert ( @@ -455,12 +456,14 @@ async def test_generic_api_callback_sumologic_uses_ndjson(): assert isinstance(ndjson_data, str), "Data should be a string for NDJSON" lines = ndjson_data.strip().split("\n") - records = [json.loads(line) for line in lines] + records: Final = [json.loads(line) for line in lines] - this_test_messages = [ + this_test_messages: Final = [ [{"role": "user", "content": f"Test {i}"}] for i in range(2) ] - mine = [record for record in records if record.get("messages") in this_test_messages] + mine: Final = [ + record for record in records if record.get("messages") in this_test_messages + ] assert ( len(mine) == 2 ), f"Expected this test's 2 calls as NDJSON lines, got {len(mine)} of {len(records)}"