|
8 | 8 | from unittest.mock import AsyncMock, MagicMock |
9 | 9 |
|
10 | 10 | import pytest |
11 | | -from arctrl import ARC # type: ignore[import-untyped] |
| 11 | +from arctrl import ARC |
12 | 12 |
|
13 | | -from middleware.api_client import ApiClient |
14 | | -from middleware.shared.api_models.models import CreateOrUpdateArcsResponse |
| 13 | +from middleware.api_client import ApiClient, ArcMetadata, ArcResult, ArcStatus |
| 14 | +from middleware.api_client.models import ArcLifecycleStatus |
15 | 15 | from middleware.shared.config.config_base import OtelConfig |
16 | 16 | from middleware.sql_to_arc.config import Config |
17 | 17 | from middleware.sql_to_arc.context import WorkerContext |
@@ -61,11 +61,15 @@ def mock_db_connection(mock_db_cursor: AsyncMock) -> AsyncMock: |
61 | 61 | def mock_api_client() -> AsyncMock: |
62 | 62 | """Mock API client.""" |
63 | 63 | client = AsyncMock(spec=ApiClient) |
64 | | - client.create_or_update_arc.return_value = CreateOrUpdateArcsResponse( |
65 | | - client_id="test", |
66 | | - message="success", |
67 | | - rdi="test", |
68 | | - arcs=[], |
| 64 | + client.create_or_update_arc.return_value = ArcResult( |
| 65 | + arc_id="test", |
| 66 | + status=ArcStatus.CREATED, |
| 67 | + metadata=ArcMetadata( |
| 68 | + arc_hash="", |
| 69 | + status=ArcLifecycleStatus.ACTIVE, |
| 70 | + first_seen="2026-01-01T00:00:00Z", |
| 71 | + last_seen="2026-01-01T00:00:00Z", |
| 72 | + ), |
69 | 73 | ) |
70 | 74 | return client |
71 | 75 |
|
@@ -121,15 +125,24 @@ def __init__(self, mocker: MagicMock, mock_api_client: AsyncMock) -> None: |
121 | 125 | mocker.patch("middleware.sql_to_arc.main.configure_logging") |
122 | 126 |
|
123 | 127 | # Capture ARCs on API call |
124 | | - async def capture_arc(rdi: str, arc: Any) -> CreateOrUpdateArcsResponse: |
| 128 | + async def capture_arc(rdi: str, arc: Any) -> ArcResult: |
125 | 129 | serialized_arc = arc |
126 | 130 | if isinstance(arc, dict): |
127 | 131 | # Convert back to ARC object for test compatibility |
128 | 132 | # processor.py sends a dict, but legacy tests expect an ARC object |
129 | 133 | serialized_arc = ARC.from_rocrate_json_string(json.dumps(arc)) |
130 | 134 |
|
131 | 135 | self.captured_arcs.append(serialized_arc) |
132 | | - return CreateOrUpdateArcsResponse(client_id="test", message="success", rdi=rdi, arcs=[]) |
| 136 | + return ArcResult( |
| 137 | + arc_id=rdi, |
| 138 | + status=ArcStatus.CREATED, |
| 139 | + metadata=ArcMetadata( |
| 140 | + arc_hash="", |
| 141 | + status=ArcLifecycleStatus.ACTIVE, |
| 142 | + first_seen="2026-01-01T00:00:00Z", |
| 143 | + last_seen="2026-01-01T00:00:00Z", |
| 144 | + ), |
| 145 | + ) |
133 | 146 |
|
134 | 147 | self.api_client.create_or_update_arc.side_effect = capture_arc |
135 | 148 |
|
|
0 commit comments