@@ -205,6 +205,7 @@ def test_full_refresh_sync(self, http_mocker):
205
205
validate_message_order ([Type .RECORD , Type .RECORD , Type .STATE ], actual_messages .records_and_state_messages )
206
206
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "users"
207
207
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"__ab_full_refresh_state_message" : True }
208
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 2
208
209
209
210
@HttpMocker ()
210
211
def test_full_refresh_with_slices (self , http_mocker ):
@@ -232,6 +233,7 @@ def test_full_refresh_with_slices(self, http_mocker):
232
233
validate_message_order ([Type .RECORD , Type .RECORD , Type .RECORD , Type .RECORD , Type .STATE ], actual_messages .records_and_state_messages )
233
234
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "dividers"
234
235
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"__ab_full_refresh_state_message" : True }
236
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 4
235
237
236
238
237
239
@freezegun .freeze_time (_NOW )
@@ -264,8 +266,10 @@ def test_incremental_sync(self, http_mocker):
264
266
validate_message_order ([Type .RECORD , Type .RECORD , Type .RECORD , Type .STATE , Type .RECORD , Type .RECORD , Type .STATE ], actual_messages .records_and_state_messages )
265
267
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "planets"
266
268
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"created_at" : last_record_date_0 }
269
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 3
267
270
assert actual_messages .state_messages [1 ].state .stream .stream_descriptor .name == "planets"
268
271
assert actual_messages .state_messages [1 ].state .stream .stream_state == {"created_at" : last_record_date_1 }
272
+ assert actual_messages .state_messages [1 ].state .sourceStats .recordCount == 2
269
273
270
274
@HttpMocker ()
271
275
def test_incremental_running_as_full_refresh (self , http_mocker ):
@@ -295,6 +299,7 @@ def test_incremental_running_as_full_refresh(self, http_mocker):
295
299
validate_message_order ([Type .RECORD , Type .RECORD , Type .RECORD , Type .RECORD , Type .RECORD , Type .STATE ], actual_messages .records_and_state_messages )
296
300
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "planets"
297
301
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"created_at" : last_record_date_1 }
302
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 5
298
303
299
304
@HttpMocker ()
300
305
def test_legacy_incremental_sync (self , http_mocker ):
@@ -324,8 +329,10 @@ def test_legacy_incremental_sync(self, http_mocker):
324
329
validate_message_order ([Type .RECORD , Type .RECORD , Type .RECORD , Type .STATE , Type .RECORD , Type .RECORD , Type .STATE ], actual_messages .records_and_state_messages )
325
330
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "legacies"
326
331
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"created_at" : last_record_date_0 }
332
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 3
327
333
assert actual_messages .state_messages [1 ].state .stream .stream_descriptor .name == "legacies"
328
334
assert actual_messages .state_messages [1 ].state .stream .stream_state == {"created_at" : last_record_date_1 }
335
+ assert actual_messages .state_messages [1 ].state .sourceStats .recordCount == 2
329
336
330
337
331
338
@freezegun .freeze_time (_NOW )
@@ -395,12 +402,16 @@ def test_incremental_and_full_refresh_streams(self, http_mocker):
395
402
], actual_messages .records_and_state_messages )
396
403
assert actual_messages .state_messages [0 ].state .stream .stream_descriptor .name == "users"
397
404
assert actual_messages .state_messages [0 ].state .stream .stream_state == {"__ab_full_refresh_state_message" : True }
405
+ assert actual_messages .state_messages [0 ].state .sourceStats .recordCount == 2
398
406
assert actual_messages .state_messages [1 ].state .stream .stream_descriptor .name == "planets"
399
407
assert actual_messages .state_messages [1 ].state .stream .stream_state == {"created_at" : last_record_date_0 }
408
+ assert actual_messages .state_messages [1 ].state .sourceStats .recordCount == 3
400
409
assert actual_messages .state_messages [2 ].state .stream .stream_descriptor .name == "planets"
401
410
assert actual_messages .state_messages [2 ].state .stream .stream_state == {"created_at" : last_record_date_1 }
411
+ assert actual_messages .state_messages [2 ].state .sourceStats .recordCount == 2
402
412
assert actual_messages .state_messages [3 ].state .stream .stream_descriptor .name == "dividers"
403
413
assert actual_messages .state_messages [3 ].state .stream .stream_state == {"__ab_full_refresh_state_message" : True }
414
+ assert actual_messages .state_messages [3 ].state .sourceStats .recordCount == 4
404
415
405
416
406
417
def emits_successful_sync_status_messages (status_messages : List [AirbyteStreamStatus ]) -> bool :
0 commit comments