Skip to content

Commit 047e147

Browse files
committed
Cleanup more tests that use unnecessary fixtures/mocks
1 parent 7ada912 commit 047e147

4 files changed

+14
-35
lines changed

tests/llmobs/conftest.py

+2-21
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,6 @@ def mock_llmobs_span_writer():
4141
patcher.stop()
4242

4343

44-
@pytest.fixture
45-
def mock_llmobs_span_agentless_writer():
46-
patcher = mock.patch("ddtrace.llmobs._llmobs.LLMObsSpanWriter")
47-
LLMObsSpanWriterMock = patcher.start()
48-
m = mock.MagicMock()
49-
LLMObsSpanWriterMock.return_value = m
50-
yield m
51-
patcher.stop()
52-
53-
5444
@pytest.fixture
5545
def mock_llmobs_eval_metric_writer():
5646
patcher = mock.patch("ddtrace.llmobs._llmobs.LLMObsEvalMetricWriter")
@@ -85,10 +75,7 @@ def mock_llmobs_submit_evaluation():
8575
def mock_http_writer_send_payload_response():
8676
with mock.patch(
8777
"ddtrace.internal.writer.HTTPWriter._send_payload",
88-
return_value=Response(
89-
status=200,
90-
body="{}",
91-
),
78+
return_value=Response(status=200, body="{}"),
9279
):
9380
yield
9481

@@ -123,12 +110,6 @@ def mock_evaluator_sampler_logs():
123110
yield m
124111

125112

126-
@pytest.fixture
127-
def mock_http_writer_logs():
128-
with mock.patch("ddtrace.internal.writer.writer.log") as m:
129-
yield m
130-
131-
132113
@pytest.fixture
133114
def mock_llmobs_logs():
134115
with mock.patch("ddtrace.llmobs._llmobs.log") as m:
@@ -161,7 +142,7 @@ def LLMObs(
161142

162143
@pytest.fixture
163144
def AgentlessLLMObs(
164-
mock_llmobs_span_agentless_writer,
145+
mock_llmobs_span_writer,
165146
mock_llmobs_eval_metric_writer,
166147
mock_llmobs_evaluator_runner,
167148
ddtrace_global_config,

tests/llmobs/test_llmobs_service.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1189,10 +1189,10 @@ def test_submit_evaluation_with_numerical_metric_enqueues_writer_with_score_metr
11891189

11901190

11911191
def test_flush_calls_periodic_agentless(
1192-
AgentlessLLMObs, mock_llmobs_span_agentless_writer, mock_llmobs_eval_metric_writer, mock_llmobs_evaluator_runner
1192+
AgentlessLLMObs, mock_llmobs_span_writer, mock_llmobs_eval_metric_writer, mock_llmobs_evaluator_runner
11931193
):
11941194
AgentlessLLMObs.flush()
1195-
mock_llmobs_span_agentless_writer.periodic.assert_called_once()
1195+
mock_llmobs_span_writer.periodic.assert_called_once()
11961196
mock_llmobs_eval_metric_writer.periodic.assert_called_once()
11971197
mock_llmobs_evaluator_runner.periodic.assert_called_once()
11981198

@@ -1216,14 +1216,14 @@ def test_flush_does_not_call_periodic_when_llmobs_is_disabled(
12161216

12171217
def test_flush_does_not_call_periodic_when_llmobs_is_disabled_agentless(
12181218
AgentlessLLMObs,
1219-
mock_llmobs_span_agentless_writer,
1219+
mock_llmobs_span_writer,
12201220
mock_llmobs_eval_metric_writer,
12211221
mock_llmobs_evaluator_runner,
12221222
mock_llmobs_logs,
12231223
disabled_llmobs,
12241224
):
12251225
AgentlessLLMObs.flush()
1226-
mock_llmobs_span_agentless_writer.periodic.assert_not_called()
1226+
mock_llmobs_span_writer.periodic.assert_not_called()
12271227
mock_llmobs_eval_metric_writer.periodic.assert_not_called()
12281228
mock_llmobs_evaluator_runner.periodic.assert_not_called()
12291229
mock_llmobs_logs.warning.assert_has_calls(

tests/llmobs/test_llmobs_span_agent_writer.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def test_flush_queue_when_event_cause_queue_to_exceed_payload_limit(
4444
[
4545
mock.call("flushing queue because queuing next event will exceed EVP payload limit"),
4646
mock.call("encode %d LLMObs span events to be sent", 5),
47-
]
47+
],
48+
any_order=True,
4849
)
4950

5051

tests/llmobs/test_llmobs_span_agentless_writer.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -75,26 +75,25 @@ def test_truncating_oversized_events(mock_writer_logs, mock_http_writer_send_pay
7575
)
7676

7777

78-
def test_send_completion_event(mock_writer_logs, mock_http_writer_logs, mock_http_writer_send_payload_response):
78+
def test_send_completion_event(mock_writer_logs, mock_http_writer_send_payload_response):
7979
with override_global_config(dict(_dd_site=DATADOG_SITE, _dd_api_key="foobar.baz")):
8080
llmobs_span_writer = LLMObsSpanWriter(is_agentless=True, interval=1, timeout=1)
8181
llmobs_span_writer.start()
8282
llmobs_span_writer.enqueue(_completion_event())
8383
llmobs_span_writer.periodic()
8484
mock_writer_logs.debug.assert_has_calls([mock.call("encode %d LLMObs span events to be sent", 1)])
85-
mock_http_writer_logs.error.assert_not_called()
8685

8786

88-
def test_send_chat_completion_event(mock_writer_logs, mock_http_writer_logs, mock_http_writer_send_payload_response):
87+
def test_send_chat_completion_event(mock_writer_logs, mock_http_writer_send_payload_response):
8988
with override_global_config(dict(_dd_site=DATADOG_SITE, _dd_api_key="foobar.baz")):
9089
llmobs_span_writer = LLMObsSpanWriter(is_agentless=True, interval=1, timeout=1)
9190
llmobs_span_writer.start()
9291
llmobs_span_writer.enqueue(_chat_completion_event())
9392
llmobs_span_writer.periodic()
9493
mock_writer_logs.debug.assert_has_calls([mock.call("encode %d LLMObs span events to be sent", 1)])
95-
mock_http_writer_logs.error.assert_not_called()
9694

9795

96+
@mock.patch("ddtrace.internal.writer.writer.log")
9897
def test_send_completion_bad_api_key(mock_http_writer_logs, mock_http_writer_put_response_forbidden):
9998
with override_global_config(dict(_dd_site=DATADOG_SITE, _dd_api_key="<bad-api-key>")):
10099
llmobs_span_writer = LLMObsSpanWriter(is_agentless=True, interval=1, timeout=1)
@@ -109,7 +108,7 @@ def test_send_completion_bad_api_key(mock_http_writer_logs, mock_http_writer_put
109108
)
110109

111110

112-
def test_send_timed_events(mock_writer_logs, mock_http_writer_logs, mock_http_writer_send_payload_response):
111+
def test_send_timed_events(mock_writer_logs, mock_http_writer_send_payload_response):
113112
with override_global_config(dict(_dd_site=DATADOG_SITE, _dd_api_key="foobar.baz")):
114113
llmobs_span_writer = LLMObsSpanWriter(is_agentless=True, interval=0.01, timeout=1)
115114
llmobs_span_writer.start()
@@ -122,10 +121,9 @@ def test_send_timed_events(mock_writer_logs, mock_http_writer_logs, mock_http_wr
122121
llmobs_span_writer.enqueue(_chat_completion_event())
123122
time.sleep(0.1)
124123
mock_writer_logs.debug.assert_has_calls([mock.call("encode %d LLMObs span events to be sent", 1)])
125-
mock_http_writer_logs.error.assert_not_called()
126124

127125

128-
def test_send_multiple_events(mock_writer_logs, mock_http_writer_logs, mock_http_writer_send_payload_response):
126+
def test_send_multiple_events(mock_writer_logs, mock_http_writer_send_payload_response):
129127
with override_global_config(dict(_dd_site=DATADOG_SITE, _dd_api_key="foobar.baz")):
130128
llmobs_span_writer = LLMObsSpanWriter(is_agentless=True, interval=0.01, timeout=1)
131129
llmobs_span_writer.start()
@@ -135,10 +133,9 @@ def test_send_multiple_events(mock_writer_logs, mock_http_writer_logs, mock_http
135133
llmobs_span_writer.enqueue(_chat_completion_event())
136134
time.sleep(0.1)
137135
mock_writer_logs.debug.assert_has_calls([mock.call("encode %d LLMObs span events to be sent", 2)])
138-
mock_http_writer_logs.error.assert_not_called()
139136

140137

141-
def test_send_on_exit(mock_writer_logs, run_python_code_in_subprocess):
138+
def test_send_on_exit(run_python_code_in_subprocess):
142139
env = os.environ.copy()
143140
pypath = [os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))]
144141
if "PYTHONPATH" in env:

0 commit comments

Comments
 (0)