Beispiel #1
0
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]
    )
Beispiel #2
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()
Beispiel #3
0
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
        }),
    ]
Beispiel #4
0
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])
Beispiel #5
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"}]
Beispiel #6
0
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"}]
Beispiel #7
0
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"}]
Beispiel #8
0
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)})]