1
0
mirror of synced 2025-12-31 15:03:11 -05:00
Files
airbyte/airbyte-cdk/python/unit_tests/utils/test_stream_status_utils.py
Jonathan Pearlin 2ebfa459cf Publish stream status messages in CDK (#24994)
* Publish stream status messages in CDK

* Automated Commit - Formatting Changes

* Convert to StreamDescriptor

* Automated Commit - Formatting Changes

* Bump to latest protocol model

* Automated Commit - Formatting Changes

* Bump protocol version

* Add tests for stream status message creation

* Formatting

* Formatting

* Fix failing test

* Actually emit state message

* Automated Commit - Formatting Changes

* Bump airbyte-protocol

* PR feedback

* Fix parameter input

* Correctly yield status message

* PR feedback

* Formatting

* Fix failing tests

* Automated Commit - Formatting Changes

* Revert accidental change

* Automated Change

* Replace STOPPED with COMPLETE/INCOMPLETE

* Update source-facebook-marketing changelog

* Revert "Update source-facebook-marketing changelog"

This reverts commit 709edb800c.

---------

Co-authored-by: jdpgrailsdev <jdpgrailsdev@users.noreply.github.com>
2023-04-26 10:30:36 -04:00

71 lines
3.3 KiB
Python

#
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
from airbyte_cdk.models import (
AirbyteMessage,
AirbyteStream,
AirbyteStreamStatus,
ConfiguredAirbyteStream,
DestinationSyncMode,
SyncMode,
TraceType,
)
from airbyte_cdk.models import Type as MessageType
from airbyte_cdk.utils.stream_status_utils import as_airbyte_message as stream_status_as_airbyte_message
stream = AirbyteStream(name="name", namespace="namespace", json_schema={}, supported_sync_modes=[SyncMode.full_refresh])
configured_stream = ConfiguredAirbyteStream(stream=stream, sync_mode=SyncMode.full_refresh, destination_sync_mode=DestinationSyncMode.overwrite)
def test_started_as_message():
stream_status = AirbyteStreamStatus.STARTED
airbyte_message = stream_status_as_airbyte_message(configured_stream, stream_status)
assert type(airbyte_message) == AirbyteMessage
assert airbyte_message.type == MessageType.TRACE
assert airbyte_message.trace.type == TraceType.STREAM_STATUS
assert airbyte_message.trace.emitted_at > 0
assert airbyte_message.trace.stream_status.stream_descriptor.name == configured_stream.stream.name
assert airbyte_message.trace.stream_status.stream_descriptor.namespace == configured_stream.stream.namespace
assert airbyte_message.trace.stream_status.status == stream_status
def test_running_as_message():
stream_status = AirbyteStreamStatus.RUNNING
airbyte_message = stream_status_as_airbyte_message(configured_stream, stream_status)
assert type(airbyte_message) == AirbyteMessage
assert airbyte_message.type == MessageType.TRACE
assert airbyte_message.trace.type == TraceType.STREAM_STATUS
assert airbyte_message.trace.emitted_at > 0
assert airbyte_message.trace.stream_status.stream_descriptor.name == configured_stream.stream.name
assert airbyte_message.trace.stream_status.stream_descriptor.namespace == configured_stream.stream.namespace
assert airbyte_message.trace.stream_status.status == stream_status
def test_complete_as_message():
stream_status = AirbyteStreamStatus.COMPLETE
airbyte_message = stream_status_as_airbyte_message(configured_stream, stream_status)
assert type(airbyte_message) == AirbyteMessage
assert airbyte_message.type == MessageType.TRACE
assert airbyte_message.trace.type == TraceType.STREAM_STATUS
assert airbyte_message.trace.emitted_at > 0
assert airbyte_message.trace.stream_status.stream_descriptor.name == configured_stream.stream.name
assert airbyte_message.trace.stream_status.stream_descriptor.namespace == configured_stream.stream.namespace
assert airbyte_message.trace.stream_status.status == stream_status
def test_incomplete_failed_as_message():
stream_status = AirbyteStreamStatus.INCOMPLETE
airbyte_message = stream_status_as_airbyte_message(configured_stream, stream_status)
assert type(airbyte_message) == AirbyteMessage
assert airbyte_message.type == MessageType.TRACE
assert airbyte_message.trace.type == TraceType.STREAM_STATUS
assert airbyte_message.trace.emitted_at > 0
assert airbyte_message.trace.stream_status.stream_descriptor.name == configured_stream.stream.name
assert airbyte_message.trace.stream_status.stream_descriptor.namespace == configured_stream.stream.namespace
assert airbyte_message.trace.stream_status.status == stream_status