|
18 | 18 | DUMMY_SPAN = Span("dummy_span")
|
19 | 19 |
|
20 | 20 |
|
21 |
| -def test_evaluator_runner_start(mock_evaluator_logs): |
22 |
| - evaluator_runner = EvaluatorRunner(interval=0.01, llmobs_service=mock.MagicMock()) |
23 |
| - evaluator_runner.evaluators.append(DummyEvaluator(llmobs_service=mock.MagicMock())) |
| 21 | +@pytest.fixture |
| 22 | +def active_evaluator_runner(LLMObs): |
| 23 | + evaluator_runner = EvaluatorRunner(interval=0.01, llmobs_service=LLMObs) |
| 24 | + evaluator_runner.evaluators.append(DummyEvaluator(llmobs_service=LLMObs)) |
24 | 25 | evaluator_runner.start()
|
25 |
| - mock_evaluator_logs.debug.assert_has_calls([mock.call("started %r to %r", "EvaluatorRunner")]) |
| 26 | + yield evaluator_runner |
| 27 | + |
26 | 28 |
|
| 29 | +def test_evaluator_runner_start(mock_evaluator_logs, active_evaluator_runner): |
| 30 | + mock_evaluator_logs.debug.assert_has_calls([mock.call("started %r", "EvaluatorRunner")]) |
27 | 31 |
|
28 |
| -def test_evaluator_runner_buffer_limit(mock_evaluator_logs): |
29 |
| - evaluator_runner = EvaluatorRunner(interval=0.01, llmobs_service=mock.MagicMock()) |
| 32 | + |
| 33 | +def test_evaluator_runner_buffer_limit(mock_evaluator_logs, active_evaluator_runner): |
30 | 34 | for _ in range(1001):
|
31 |
| - evaluator_runner.enqueue({}, DUMMY_SPAN) |
| 35 | + active_evaluator_runner.enqueue({}, DUMMY_SPAN) |
32 | 36 | mock_evaluator_logs.warning.assert_called_with(
|
33 | 37 | "%r event buffer full (limit is %d), dropping event", "EvaluatorRunner", 1000
|
34 | 38 | )
|
35 | 39 |
|
36 | 40 |
|
37 |
| -def test_evaluator_runner_periodic_enqueues_eval_metric(LLMObs, mock_llmobs_eval_metric_writer): |
38 |
| - evaluator_runner = EvaluatorRunner(interval=0.01, llmobs_service=LLMObs) |
39 |
| - evaluator_runner.evaluators.append(DummyEvaluator(llmobs_service=LLMObs)) |
40 |
| - evaluator_runner.enqueue({"span_id": "123", "trace_id": "1234"}, DUMMY_SPAN) |
41 |
| - evaluator_runner.periodic() |
| 41 | +def test_evaluator_runner_periodic_enqueues_eval_metric(mock_llmobs_eval_metric_writer, active_evaluator_runner): |
| 42 | + active_evaluator_runner.enqueue({"span_id": "123", "trace_id": "1234"}, DUMMY_SPAN) |
| 43 | + active_evaluator_runner.periodic() |
42 | 44 | mock_llmobs_eval_metric_writer.enqueue.assert_called_once_with(
|
43 | 45 | _dummy_evaluator_eval_metric_event(span_id="123", trace_id="1234")
|
44 | 46 | )
|
45 | 47 |
|
46 | 48 |
|
47 |
| -@pytest.mark.vcr_logs |
48 |
| -def test_evaluator_runner_timed_enqueues_eval_metric(LLMObs, mock_llmobs_eval_metric_writer): |
49 |
| - evaluator_runner = EvaluatorRunner(interval=0.01, llmobs_service=LLMObs) |
50 |
| - evaluator_runner.evaluators.append(DummyEvaluator(llmobs_service=LLMObs)) |
| 49 | +def test_evaluator_runner_stopped_does_not_enqueue_metric(LLMObs, mock_llmobs_eval_metric_writer): |
| 50 | + evaluator_runner = EvaluatorRunner(interval=0.1, llmobs_service=LLMObs) |
51 | 51 | evaluator_runner.start()
|
52 |
| - |
53 | 52 | evaluator_runner.enqueue({"span_id": "123", "trace_id": "1234"}, DUMMY_SPAN)
|
| 53 | + assert not evaluator_runner._buffer |
| 54 | + assert mock_llmobs_eval_metric_writer.enqueue.call_count == 0 |
| 55 | + |
| 56 | + |
| 57 | +def test_evaluator_runner_timed_enqueues_eval_metric(LLMObs, mock_llmobs_eval_metric_writer, active_evaluator_runner): |
| 58 | + active_evaluator_runner.enqueue({"span_id": "123", "trace_id": "1234"}, DUMMY_SPAN) |
54 | 59 |
|
55 | 60 | time.sleep(0.1)
|
56 | 61 |
|
|
0 commit comments