|
6 | 6 | from unittest.mock import Mock |
7 | 7 |
|
8 | 8 | import freezegun |
| 9 | +from airbyte_protocol_dataclasses.models import AirbyteStateType |
9 | 10 |
|
10 | 11 | from airbyte_cdk.models import ( |
11 | 12 | AirbyteMessage, |
12 | 13 | AirbyteRecordMessage, |
| 14 | + AirbyteStateMessage, |
13 | 15 | AirbyteStream, |
14 | 16 | AirbyteStreamStatus, |
15 | 17 | AirbyteStreamStatusTraceMessage, |
|
22 | 24 | TraceType, |
23 | 25 | ) |
24 | 26 | from airbyte_cdk.models import Type as MessageType |
| 27 | +from airbyte_cdk.models.airbyte_protocol import ( |
| 28 | + AirbyteStateBlob, |
| 29 | + AirbyteStreamState, |
| 30 | +) |
25 | 31 | from airbyte_cdk.sources import AbstractSource |
26 | 32 | from airbyte_cdk.sources.concurrent_source.concurrent_source import ConcurrentSource |
27 | 33 | from airbyte_cdk.sources.concurrent_source.concurrent_source_adapter import ConcurrentSourceAdapter |
28 | 34 | from airbyte_cdk.sources.message import InMemoryMessageRepository |
29 | | -from airbyte_cdk.sources.streams import Stream |
| 35 | +from airbyte_cdk.sources.streams import NO_CURSOR_STATE_KEY, Stream |
30 | 36 | from airbyte_cdk.sources.streams.concurrent.adapters import StreamFacade |
31 | 37 | from airbyte_cdk.sources.streams.concurrent.cursor import FinalStateCursor |
32 | 38 | from airbyte_cdk.sources.streams.core import StreamData |
@@ -212,6 +218,16 @@ def test_concurrent_source_yields_the_same_messages_as_abstract_source_when_no_e |
212 | 218 | emitted_at=1577836800000, |
213 | 219 | ), |
214 | 220 | ), |
| 221 | + AirbyteMessage( |
| 222 | + type=MessageType.STATE, |
| 223 | + state=AirbyteStateMessage( |
| 224 | + type=AirbyteStateType.STREAM, |
| 225 | + stream=AirbyteStreamState( |
| 226 | + stream_descriptor=StreamDescriptor(name="stream0"), |
| 227 | + stream_state=AirbyteStateBlob(**{NO_CURSOR_STATE_KEY: True}), |
| 228 | + ), |
| 229 | + ), |
| 230 | + ), |
215 | 231 | AirbyteMessage( |
216 | 232 | type=MessageType.TRACE, |
217 | 233 | trace=AirbyteTraceMessage( |
@@ -283,6 +299,16 @@ def test_concurrent_source_yields_the_same_messages_as_abstract_source_when_no_e |
283 | 299 | emitted_at=1577836800000, |
284 | 300 | ), |
285 | 301 | ), |
| 302 | + AirbyteMessage( |
| 303 | + type=MessageType.STATE, |
| 304 | + state=AirbyteStateMessage( |
| 305 | + type=AirbyteStateType.STREAM, |
| 306 | + stream=AirbyteStreamState( |
| 307 | + stream_descriptor=StreamDescriptor(name="stream1"), |
| 308 | + stream_state=AirbyteStateBlob(**{NO_CURSOR_STATE_KEY: True}), |
| 309 | + ), |
| 310 | + ), |
| 311 | + ), |
286 | 312 | AirbyteMessage( |
287 | 313 | type=MessageType.TRACE, |
288 | 314 | trace=AirbyteTraceMessage( |
|
0 commit comments