def test_query_flow_runs_ignores_currently_submitting_runs(monkeypatch, cloud_api): gql_return = MagicMock( return_value=MagicMock( data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["id1", "id2"]), flow_run=[ GraphQLResult( {"id": "id", "scheduled_start_time": str(pendulum.now())} ) ], ) ) ) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() agent.submitting_flow_runs.add("id2") agent.query_flow_runs() assert len(gql_return.call_args_list) == 2 assert ( 'id: { _in: ["id1"] }' in list(gql_return.call_args_list[1][0][0]["query"].keys())[0] )
def test_query_flow_runs_does_not_use_submitting_flow_runs_directly( monkeypatch, runner_token, caplog, cloud_api ): gql_return = MagicMock( return_value=MagicMock( data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["already-submitted-id"]), flow_run=[{"id": "id"}], ) ) ) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() agent.logger.setLevel(logging.DEBUG) copy_mock = MagicMock(return_value=set(["already-submitted-id"])) agent.submitting_flow_runs = MagicMock(copy=copy_mock) flow_runs = agent.query_flow_runs() assert flow_runs == [] assert "1 already submitting: ['already-submitted-id']" in caplog.text copy_mock.assert_called_once_with()
def test_query_flow_runs_ordered_by_start_time(monkeypatch, cloud_api): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["id"]), flow_run=[ GraphQLResult({ "id": "id2", "scheduled_start_time": 200 }), GraphQLResult({ "id": "id", "scheduled_start_time": 1 }), ], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() flow_runs = agent.query_flow_runs() assert flow_runs == [ GraphQLResult({ "id": "id", "scheduled_start_time": 1 }), GraphQLResult({ "id": "id2", "scheduled_start_time": 200 }), ]
def test_query_flow_runs_ignores_currently_submitting_runs( monkeypatch, runner_token, cloud_api): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["id1", "id2"]), flow_run=[{ "id1": "id1" }], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() agent.submitting_flow_runs.add("id2") agent.query_flow_runs() assert len(gql_return.call_args_list) == 2 assert ('id: { _in: ["id1"] }' in list(gql_return.call_args_list[1][0][0]["query"].keys())[0])
def test_query_flow_runs(monkeypatch, runner_token): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( getRunsInQueue=MagicMock(flow_run_ids=["id"]), flow_run=[{ "id": "id" }]))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() flow_runs = agent.query_flow_runs(tenant_id="id") assert flow_runs == [{"id": "id"}]
def test_query_flow_runs(monkeypatch, cloud_api): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["id"]), flow_run=[{ "id": "id" }], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() flow_runs = agent.query_flow_runs() assert flow_runs == [{"id": "id"}]
def test_query_flow_runs(monkeypatch): with set_temporary_config({"cloud.agent.auth_token": "token"}): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( getRunsInQueue=MagicMock(flow_run_ids=["id"]), flow_run=[{ "id": "id" }], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() flow_runs = agent.query_flow_runs(tenant_id="id") assert flow_runs == [{"id": "id"}]
def test_query_flow_runs(monkeypatch, cloud_api): dt = pendulum.now() gql_return = MagicMock( return_value=MagicMock( data=MagicMock( get_runs_in_queue=MagicMock(flow_run_ids=["id"]), flow_run=[GraphQLResult({"id": "id", "scheduled_start_time": str(dt)})], ) ) ) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() flow_runs = agent.query_flow_runs() assert flow_runs == [GraphQLResult({"id": "id", "scheduled_start_time": str(dt)})]