def test_agent_process_raises_exception_and_logs(monkeypatch, runner_token): client = MagicMock() client.return_value.graphql.side_effect = ValueError("Error") monkeypatch.setattr("prefect.agent.agent.Client", client) agent = Agent() with pytest.raises(Exception): agent.agent_process("id") assert client.write_run_log.called
def test_agent_process(monkeypatch, runner_token): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( set_flow_run_state=None, set_task_run_state=None, getRunsInQueue=MagicMock(flow_run_ids=["id"]), flow_run=[ GraphQLResult({ "id": "id", "serialized_state": Scheduled().serialize(), "version": 1, "task_runs": [ GraphQLResult({ "id": "id", "version": 1, "serialized_state": Scheduled().serialize(), }) ], }) ], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) # Assert it doesn't return everything but all functions are called properly agent = Agent() assert agent.agent_process("id")
def test_agent_process(monkeypatch, runner_token, cloud_api): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( set_flow_run_state=None, set_task_run_state=None, get_runs_in_queue=MagicMock(flow_run_ids=["id"]), flow_run=[ GraphQLResult({ "id": "id", "serialized_state": Scheduled().serialize(), "version": 1, "task_runs": [ GraphQLResult({ "id": "id", "version": 1, "serialized_state": Scheduled().serialize(), }) ], }) ], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) executor = MagicMock() future_mock = MagicMock() executor.submit = MagicMock(return_value=future_mock) agent = Agent() assert agent.agent_process(executor) assert executor.submit.called assert future_mock.add_done_callback.called
def test_agent_process_no_runs_found(monkeypatch, runner_token): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( set_flow_run_state=None, set_task_run_state=None, getRunsInQueue=MagicMock(flow_run_ids=["id"]), flow_run=[], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) # Assert it doesn't return everything but all functions are called properly agent = Agent() assert not agent.agent_process("id")
def test_agent_process_no_runs_found(monkeypatch, runner_token, cloud_api): gql_return = MagicMock(return_value=MagicMock(data=MagicMock( set_flow_run_state=None, set_task_run_state=None, get_runs_in_queue=MagicMock(flow_run_ids=["id"]), flow_run=[], ))) client = MagicMock() client.return_value.graphql = gql_return monkeypatch.setattr("prefect.agent.agent.Client", client) executor = MagicMock() agent = Agent() assert not agent.agent_process(executor) assert not executor.submit.called