|
2 | 2 | # Copyright (c) 2023 Airbyte, Inc., all rights reserved. |
3 | 3 | # |
4 | 4 |
|
5 | | -import dataclasses |
| 5 | + |
| 6 | +from dataclasses import asdict, dataclass, field |
6 | 7 | from typing import Any, List, Mapping |
7 | 8 |
|
8 | | -from airbyte_cdk.connector_builder.message_grouper import MessageGrouper |
| 9 | +from airbyte_cdk.connector_builder.test_reader import TestReader |
9 | 10 | from airbyte_cdk.models import ( |
10 | 11 | AirbyteMessage, |
11 | 12 | AirbyteRecordMessage, |
|
32 | 33 | MAX_RECORDS_KEY = "max_records" |
33 | 34 |
|
34 | 35 |
|
35 | | -@dataclasses.dataclass |
| 36 | +@dataclass |
36 | 37 | class TestReadLimits: |
37 | | - max_records: int = dataclasses.field(default=DEFAULT_MAXIMUM_RECORDS) |
38 | | - max_pages_per_slice: int = dataclasses.field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE) |
39 | | - max_slices: int = dataclasses.field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES) |
| 38 | + max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS) |
| 39 | + max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE) |
| 40 | + max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES) |
40 | 41 |
|
41 | 42 |
|
42 | 43 | def get_limits(config: Mapping[str, Any]) -> TestReadLimits: |
@@ -73,17 +74,20 @@ def read_stream( |
73 | 74 | limits: TestReadLimits, |
74 | 75 | ) -> AirbyteMessage: |
75 | 76 | try: |
76 | | - handler = MessageGrouper(limits.max_pages_per_slice, limits.max_slices, limits.max_records) |
77 | | - stream_name = configured_catalog.streams[ |
78 | | - 0 |
79 | | - ].stream.name # The connector builder only supports a single stream |
80 | | - stream_read = handler.get_message_groups( |
| 77 | + test_read_handler = TestReader( |
| 78 | + limits.max_pages_per_slice, limits.max_slices, limits.max_records |
| 79 | + ) |
| 80 | + # The connector builder only supports a single stream |
| 81 | + stream_name = configured_catalog.streams[0].stream.name |
| 82 | + |
| 83 | + stream_read = test_read_handler.run_test_read( |
81 | 84 | source, config, configured_catalog, state, limits.max_records |
82 | 85 | ) |
| 86 | + |
83 | 87 | return AirbyteMessage( |
84 | 88 | type=MessageType.RECORD, |
85 | 89 | record=AirbyteRecordMessage( |
86 | | - data=dataclasses.asdict(stream_read), stream=stream_name, emitted_at=_emitted_at() |
| 90 | + data=asdict(stream_read), stream=stream_name, emitted_at=_emitted_at() |
87 | 91 | ), |
88 | 92 | ) |
89 | 93 | except Exception as exc: |
|
0 commit comments