1
0
mirror of synced 2026-01-22 00:06:56 -05:00
Files
airbyte/airbyte-integrations/connectors/source-iterable/unit_tests/test_source.py
Marcos Marx dca2256a7c Bump 2022 license version (#13233)
* Bump year in license short to 2022

* remove protocol from cdk
2022-05-26 15:00:42 -03:00

42 lines
1.2 KiB
Python

#
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#
import json
import math
from unittest import mock
import freezegun
import pendulum
import pytest
import responses
from source_iterable.iterable_streams import RangeSliceGenerator
from source_iterable.source import SourceIterable
@pytest.fixture
def response_mock():
with responses.RequestsMock() as resp_mock:
record_js = {"profileUpdatedAt": "2020"}
resp_body = "\n".join([json.dumps(record_js)])
responses.add("GET", "https://api.iterable.com/api/export/data.json", body=resp_body)
yield resp_mock
@responses.activate
@freezegun.freeze_time("2021-01-01")
@pytest.mark.parametrize("catalog", (["users"]), indirect=True)
def test_stream_correct(response_mock, catalog):
TEST_START_DATE = "2020"
chunks = math.ceil((pendulum.today() - pendulum.parse(TEST_START_DATE)).days / RangeSliceGenerator.RANGE_LENGTH_DAYS)
source = SourceIterable()
records = list(
source.read(
mock.MagicMock(),
{"start_date": TEST_START_DATE, "api_key": "api_key"},
catalog,
None,
)
)
assert len(records) == chunks