示例#1
0
def test_flow_run_view_query_for_flow_run_uses_where_in_query(monkeypatch):
    post = MagicMock(return_value={"data": {"flow_run": [FLOW_RUN_DATA_1]}})
    monkeypatch.setattr("prefect.client.client.Client.post", post)

    FlowRunView._query_for_flow_run(where={"foo": {"_eq": "bar"}})

    assert ('flow_run(where: { foo: { _eq: "bar" } })'
            in post.call_args[1]["params"]["query"])
示例#2
0
def test_flow_run_view_query_for_flow_run_includes_all_required_data(
        monkeypatch):
    graphql = MagicMock(return_value={"data": {"flow_run": [FLOW_RUN_DATA_1]}})
    monkeypatch.setattr("prefect.client.client.Client.graphql", graphql)

    FlowRunView._query_for_flow_run(where={})

    query_dict = graphql.call_args[0][0]
    selection_set = query_dict["query"]["flow_run(where: {})"]
    assert selection_set == {
        "id": True,
        "name": True,
        "serialized_state": True,
        "states": {"serialized_state", "timestamp"},
        "flow_id": True,
        "context": True,
        "parameters": True,
        "labels": True,
        "updated": True,
        "run_config": True,
    }
示例#3
0
def test_flow_run_view_query_for_flow_run_unpacks_result_singleton(patch_post):
    patch_post({"data": {"flow_run": [1]}})

    assert FlowRunView._query_for_flow_run(where={}) == 1
示例#4
0
def test_flow_run_view_query_for_flow_run_errors_on_multiple_flow_runs(
        patch_post):
    patch_post({"data": {"flow_run": [1, 2]}})

    with pytest.raises(ValueError, match=r"multiple \(2\) flow runs"):
        FlowRunView._query_for_flow_run(where={})
示例#5
0
def test_flow_run_view_query_for_flow_run_raises_when_not_found(patch_post):
    patch_post({"data": {"flow_run": []}})

    with pytest.raises(ValueError, match="No flow runs found"):
        FlowRunView._query_for_flow_run(where={})
示例#6
0
def test_flow_run_view_query_for_flow_run_raises_bad_responses(patch_post):
    patch_post({})

    with pytest.raises(ValueError,
                       match="bad result while querying for flow runs"):
        FlowRunView._query_for_flow_run(where={})