1
0
mirror of synced 2025-12-31 15:03:11 -05:00
Files
airbyte/airbyte-cdk/python/unit_tests/singer/test_singer_helpers.py
Cole Snodgrass 2e099acc52 update headers from 2022 -> 2023 (#22594)
* It's 2023!

* 2022 -> 2023

---------

Co-authored-by: evantahler <evan@airbyte.io>
2023-02-08 13:01:16 -08:00

57 lines
1.7 KiB
Python

#
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
import copy
from airbyte_cdk.sources.singer import SingerHelper
basic_singer_catalog = {
"streams": [
{
"type": "SCHEMA",
"stream": "users",
"schema": {
"properties": {
"id": {"type": "integer"},
"name": {"type": "string"},
"updated_at": {"type": "string", "format": "date-time"},
}
},
"key_properties": ["id"],
"bookmark_properties": ["updated_at"],
}
]
}
def test_singer_catalog_to_airbyte_catalog():
airbyte_catalog = SingerHelper.singer_catalog_to_airbyte_catalog(
singer_catalog=basic_singer_catalog, sync_mode_overrides={}, primary_key_overrides={}
)
user_stream = airbyte_catalog.streams[0]
assert user_stream.source_defined_primary_key == [["id"]]
def test_singer_catalog_to_airbyte_catalog_composite_pk():
singer_catalog = copy.deepcopy(basic_singer_catalog)
singer_catalog["streams"][0]["key_properties"] = ["id", "name"]
airbyte_catalog = SingerHelper.singer_catalog_to_airbyte_catalog(
singer_catalog=singer_catalog, sync_mode_overrides={}, primary_key_overrides={}
)
user_stream = airbyte_catalog.streams[0]
assert user_stream.source_defined_primary_key == [["id"], ["name"]]
def test_singer_catalog_to_airbyte_catalog_pk_override():
airbyte_catalog = SingerHelper.singer_catalog_to_airbyte_catalog(
singer_catalog=basic_singer_catalog, sync_mode_overrides={}, primary_key_overrides={"users": ["name"]}
)
user_stream = airbyte_catalog.streams[0]
assert user_stream.source_defined_primary_key == [["name"]]