Skip to content

Commit d31c26b

Browse files
fix: Return False (skip) when no datetime-based cursors found for retention check
Co-Authored-By: alfredo.garcia@airbyte.io <freddy.garcia7.fg@gmail.com>
1 parent d3e76d4 commit d31c26b

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3621,10 +3621,14 @@ def _is_cursor_older_than_retention_period(
36213621
if "state_type" in stream_state or "slices" in stream_state:
36223622
return False
36233623

3624+
datetime_cursor_sources = [
3625+
s for s in incremental_sync_sources if isinstance(s, DatetimeBasedCursorModel)
3626+
]
3627+
if not datetime_cursor_sources:
3628+
return False
3629+
36243630
cursor_datetime: datetime.datetime | None = None
3625-
for incremental_sync in incremental_sync_sources:
3626-
if not isinstance(incremental_sync, DatetimeBasedCursorModel):
3627-
continue
3631+
for incremental_sync in datetime_cursor_sources:
36283632
cursor = self._create_cursor_for_age_check(incremental_sync, config)
36293633
cursor_datetime = cursor.get_cursor_datetime_from_state(stream_state)
36303634
if cursor_datetime is not None:

unit_tests/sources/declarative/test_state_delegating_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ def test_cursor_age_validation_skips_incrementing_count_cursor():
533533

534534
with HttpMocker() as http_mocker:
535535
http_mocker.get(
536-
HttpRequest(url="https://api.test.com/items"),
536+
HttpRequest(url="https://api.test.com/items_with_filtration"),
537537
HttpResponse(body=json.dumps([{"id": 101, "updated_at": "2024-07-14"}])),
538538
)
539539

0 commit comments

Comments
 (0)