|
16 | 16 | from pyatlan.client.workflow import WorkflowClient |
17 | 17 | from pyatlan.errors import InvalidRequestError |
18 | 18 | from pyatlan.model.enums import AtlanWorkflowPhase, WorkflowPackage |
| 19 | +from pyatlan.model.search import Range |
19 | 20 | from pyatlan.model.workflow import ( |
20 | 21 | PackageParameter, |
21 | 22 | ScheduleQueriesSearchRequest, |
@@ -285,17 +286,31 @@ def test_find_runs_by_status_and_time_range(client: WorkflowClient, mock_api_cal |
285 | 286 | status = [AtlanWorkflowPhase.SUCCESS, AtlanWorkflowPhase.FAILED] |
286 | 287 | started_at = "now-2h" |
287 | 288 | finished_at = "now-1h" |
288 | | - assert client.find_runs_by_status_and_time_range( |
| 289 | + response = client.find_runs_by_status_and_time_range( |
289 | 290 | status=status, |
290 | 291 | started_at=started_at, |
291 | 292 | finished_at=finished_at, |
292 | 293 | from_=10, |
293 | 294 | size=5, |
294 | | - ) == WorkflowSearchResponse(**raw_json) |
295 | | - mock_api_caller._call_api.assert_called_once() |
296 | | - assert isinstance( |
297 | | - mock_api_caller._call_api.call_args.kwargs["request_obj"], WorkflowSearchRequest |
298 | 295 | ) |
| 296 | + assert response == WorkflowSearchResponse(**raw_json) |
| 297 | + mock_api_caller._call_api.assert_called_once() |
| 298 | + request_obj = mock_api_caller._call_api.call_args.kwargs["request_obj"] |
| 299 | + assert isinstance(request_obj, WorkflowSearchRequest) |
| 300 | + assert request_obj.query |
| 301 | + range_filters = [ |
| 302 | + clause |
| 303 | + for clause in request_obj.query.must # type: ignore |
| 304 | + if isinstance(clause, Range) |
| 305 | + ] |
| 306 | + assert any( |
| 307 | + rf.field == "status.startedAt" and rf.gte == started_at for rf in range_filters |
| 308 | + ) |
| 309 | + finished_filters = [rf for rf in range_filters if rf.field == "status.finishedAt"] |
| 310 | + assert len(finished_filters) == 1 |
| 311 | + finished_filter = finished_filters[0] |
| 312 | + assert finished_filter.lte == finished_at |
| 313 | + assert finished_filter.gte is None |
299 | 314 |
|
300 | 315 |
|
301 | 316 | def test_find_by_id( |
|
0 commit comments