From 4171a3cef7ccf5b59676cdd4d65b72d5c35d5d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:11:21 -0600 Subject: [PATCH] test: Test `DateRangePaginator` (#3) --- tests/test_core.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/test_core.py b/tests/test_core.py index ae36f52..c530417 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -7,6 +7,7 @@ from singer_sdk.testing import SuiteConfig, get_tap_test_class +from tap_nasa.client import DateRange, DateRangePaginator from tap_nasa.tap import TapNASA @@ -26,3 +27,33 @@ def today() -> datetime.date: # noqa: D103 max_records_limit=10, ), ) + + +def test_date_range_pagination() -> None: + """Test date range pagination.""" + start_date = datetime.date(2021, 1, 1) + interval = datetime.timedelta(days=10) + max_date = datetime.date(2021, 1, 25) + + response = object() + + paginator = DateRangePaginator( + start_value=DateRange( + start=start_date, + interval=interval, + max_date=max_date, + ) + ) + assert paginator.current_value.start == datetime.date(2021, 1, 1) + assert paginator.current_value.end_date == datetime.date(2021, 1, 11) + + paginator.advance(response) + assert paginator.current_value.start == datetime.date(2021, 1, 12) + assert paginator.current_value.end_date == datetime.date(2021, 1, 22) + + paginator.advance(response) + assert paginator.current_value.start == datetime.date(2021, 1, 23) + assert paginator.current_value.end_date == datetime.date(2021, 1, 25) + + paginator.advance(response) + assert paginator.finished