@@ -221,6 +221,56 @@ def test_clear_data_with_existing_data(
221221
222222class TestDataFunction (unittest .TestCase ):
223223
224+ @patch ("src.inspector.inspector.ClickHouseKafkaSender" )
225+ @patch ("src.inspector.inspector.ExactlyOnceKafkaProduceHandler" )
226+ @patch ("src.inspector.inspector.ExactlyOnceKafkaConsumeHandler" )
227+ @patch ("src.inspector.inspector.TIME_TYPE" , "ms" )
228+ @patch ("src.inspector.inspector.TIME_RANGE" , 1 )
229+ def test_count_errors_valid_and_out_of_range (
230+ self , mock_kafka_consume_handler , mock_produce_handler , mock_clickhouse
231+ ):
232+ """Test that _count_errors correctly counts events
233+ and ignores timestamps outside the [begin, end] range.
234+ """
235+
236+ # Mock Kafka handlers to avoid side effects
237+ mock_kafka_consume_handler .return_value = MagicMock ()
238+ mock_produce_handler .return_value = MagicMock ()
239+ mock_clickhouse .return_value = MagicMock ()
240+
241+ sut = Inspector ()
242+
243+ # Prepare timestamps
244+ begin_timestamp = datetime .now ()
245+ end_timestamp = begin_timestamp + timedelta (milliseconds = 2 )
246+
247+ # Message within range
248+ in_range = DEFAULT_DATA .copy ()
249+ in_range ["timestamp" ] = datetime .strftime (
250+ begin_timestamp + timedelta (milliseconds = 1 ),
251+ TIMESTAMP_FORMAT ,
252+ )
253+
254+ # Message outside range (should be ignored)
255+ out_of_range = DEFAULT_DATA .copy ()
256+ out_of_range ["timestamp" ] = datetime .strftime (
257+ begin_timestamp + timedelta (milliseconds = 10 ),
258+ TIMESTAMP_FORMAT ,
259+ )
260+
261+ messages = [in_range , out_of_range ]
262+
263+ # Execute
264+ result = sut ._count_errors (messages , begin_timestamp , end_timestamp )
265+
266+ # The expected counts:
267+ # 1 ms → one event
268+ # 0 ms, 2 ms → no events
269+ expected = np .asarray ([[0.0 ], [1.0 ], [0.0 ]])
270+
271+ np .testing .assert_array_equal (result , expected )
272+
273+
224274 @patch ("src.inspector.inspector.ClickHouseKafkaSender" )
225275 @patch ("src.inspector.inspector.ExactlyOnceKafkaProduceHandler" )
226276 @patch ("src.inspector.inspector.ExactlyOnceKafkaConsumeHandler" )
0 commit comments