コード例 #1
0
def test_position_simple(json_client, db_connection, db_cur):
    setup_events_data(db_connection, db_cur)
    request = {
        "requests": default_request_parts,
        "position": 1,
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {
        "a": {
            "1": {
                "field_1": "data",
                "field_2": 42,
                "field_3": [1, 2, 3],
                "common_field": 1,
                "meta_position": 1,
            },
        },
        "b": {
            "1": {
                "field_4": "data",
                "field_5": 42,
                "field_6": [1, 2, 3],
                "common_field": 2,
                "meta_position": 1,
            },
            "2": {
                "field_4": "data",
                "field_5": 42,
                "field_6": [1, 2, 3],
                "common_field": 3,
                "meta_position": 1,
            },
        },
    }
コード例 #2
0
def test_partial_mapped_fields(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": [
            {
                "collection": "a",
                "ids": [1],
                "mapped_fields": ["field_1"]
            },
            {
                "collection": "b",
                "ids": [1]
            },
        ],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {
        "a": {
            "1": {
                "field_1": "data"
            }
        },
        "b": {
            "1": data["b"]["1"]
        },
    }
コード例 #3
0
def test_same_fqid(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": [
            {
                "collection": "b",
                "ids": [1],
                "mapped_fields": ["field_4"]
            },
            {
                "collection": "b",
                "ids": [1],
                "mapped_fields": ["field_5"]
            },
        ],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {
        "b": {
            "1": {
                "field_4": "data",
                "field_5": 42
            }
        },
    }
コード例 #4
0
def test_filter_none_values(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": ["b/1/not_existent_field"],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {"b": {"1": {}}}
コード例 #5
0
def test_list_of_fqfields(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": ["a/1/field_1", "c/1/f"],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {"a": {"1": {"field_1": "data"}}, "c": {}}
コード例 #6
0
def test_mapped_fields_filter_none_values(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, {FQID: data})
    response = json_client.post(Route.GET.URL, {
        "fqid": FQID,
        "mapped_fields": ["field_that_doesnt_exist"]
    })
    assert_success_response(response)
    assert response.json == {}
コード例 #7
0
def test_simple(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    response = json_client.post(Route.GET_EVERYTHING.URL, {})
    assert_success_response(response)
    assert response.json == {
        "a": [get_data_with_id("a/1")],
        "b": [get_data_with_id("b/1")],
    }
コード例 #8
0
def test_only_deleted(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    response = json_client.post(
        Route.GET_EVERYTHING.URL,
        {"get_deleted_models": DeletedModelsBehaviour.ONLY_DELETED},
    )
    assert_success_response(response)
    assert response.json == {"a": [get_data_with_id("a/2")]}
コード例 #9
0
def test_deleted_not_deleted(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": default_request_parts,
        "get_deleted_models": DeletedModelsBehaviour.ONLY_DELETED,
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {"a": {}, "b": {}}
コード例 #10
0
def test_position_mapped_fields(json_client, db_connection, db_cur):
    setup_events_data(db_connection, db_cur)
    response = json_client.post(Route.GET.URL, {
        "fqid": FQID,
        "position": 1,
        "mapped_fields": ["field_1"]
    })
    assert_success_response(response)
    assert response.json == {"field_1": "data"}
コード例 #11
0
def test_deleted_all_models(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, 2)
    response = json_client.post(
        Route.GET_ALL.URL,
        {
            "collection": "a",
            "get_deleted_models": DeletedModelsBehaviour.ALL_MODELS
        },
    )
    assert_success_response(response)
    assert response.json == {"1": data["a/1"], "2": data["a/2"]}
コード例 #12
0
def test_only_deleted(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, 2)
    response = json_client.post(
        Route.GET_ALL.URL,
        {
            "collection": "a",
            "get_deleted_models": DeletedModelsBehaviour.ONLY_DELETED
        },
    )
    assert_success_response(response)
    assert response.json == {"2": data["a/2"]}
コード例 #13
0
def test_get_all_models_deleted(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, {FQID: data}, True)
    response = json_client.post(
        Route.GET.URL,
        {
            "fqid": FQID,
            "get_deleted_models": DeletedModelsBehaviour.ALL_MODELS
        },
    )
    assert_success_response(response)
    assert response.json == data
コード例 #14
0
def test_mapped_fields(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, {FQID: data})
    response = json_client.post(Route.GET.URL, {
        "fqid": FQID,
        "mapped_fields": ["fqid", "field_3"]
    })
    assert_success_response(response)
    assert response.json == {
        "fqid": FQID,
        "field_3": [1, 2, 3],
    }
コード例 #15
0
def test_get_no_deleted_success(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, {FQID: data})
    response = json_client.post(
        Route.GET.URL,
        {
            "fqid": FQID,
            "get_deleted_models": DeletedModelsBehaviour.NO_DELETED
        },
    )
    assert_success_response(response)
    assert response.json == data
コード例 #16
0
def test_empty_field(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {"field": "empty", "operator": "=", "value": "data"},
        },
    )
    assert_success_response(response)
    assert response.json == {"data": {}, "position": 3}
コード例 #17
0
def test_lt(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {"field": "field_2", "operator": "<", "value": 42},
        },
    )
    assert_success_response(response)
    assert response.json == {"data": {"2": data["a/2"]}, "position": 3}
コード例 #18
0
def test_neq_none(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {"field": "field_not_none", "operator": "!=", "value": None},
        },
    )
    assert_success_response(response)
    assert response.json == {"data": {"1": data["a/1"]}, "position": 3}
コード例 #19
0
def test_deleted_all_models(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    response = json_client.post(
        Route.GET_EVERYTHING.URL,
        {"get_deleted_models": DeletedModelsBehaviour.ALL_MODELS},
    )
    assert_success_response(response)
    assert response.json == {
        "a": [get_data_with_id("a/1"),
              get_data_with_id("a/2")],
        "b": [get_data_with_id("b/1")],
    }
コード例 #20
0
def test_false(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.EXISTS.URL,
        {
            "collection": "a",
            "filter": {"field": "field_1", "operator": "=", "value": "doesnt_exist"},
        },
    )
    assert_success_response(response)
    assert response.json == {
        "exists": False,
        "position": 3,
    }
コード例 #21
0
def test_only_invalid_fqids(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": [{
            "collection": "b",
            "ids": [3]
        }, {
            "collection": "c",
            "ids": [1]
        }],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {"b": {}, "c": {}}
コード例 #22
0
def test_position(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.MAX.URL,
        {
            "collection": "a",
            "filter": {"field": "field_2", "operator": "=", "value": 1},
            "field": "meta_position",
        },
    )
    assert_success_response(response)
    assert response.json == {
        "max": 3,
        "position": 5,
    }
コード例 #23
0
def test_mapped_fields(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {"field": "field_1", "operator": "=", "value": "data"},
            "mapped_fields": ["field_3", "meta_position"],
        },
    )
    assert_success_response(response)
    assert response.json == {
        "data": {"1": {"field_3": True, "meta_position": 1}},
        "position": 3,
    }
コード例 #24
0
def test_fqfields_same_fqid(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    request = {
        "requests": ["b/1/field_4", "b/1/field_5"],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {
        "b": {
            "1": {
                "field_4": "data",
                "field_5": 42
            }
        },
    }
コード例 #25
0
def test_2(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.COUNT.URL,
        {
            "collection": "a",
            "filter": {
                "field": "field_2",
                "operator": "=",
                "value": 42
            },
        },
    )
    assert_success_response(response)
    assert response.json == {
        "count": 2,
        "position": 3,
    }
コード例 #26
0
def test_or(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {
                "or_filter": [
                    {"field": "field_1", "operator": "=", "value": "data"},
                    {"field": "field_1", "operator": "=", "value": "test"},
                ]
            },
        },
    )
    assert_success_response(response)
    assert response.json == {
        "data": {"1": data["a/1"], "2": data["a/2"]},
        "position": 3,
    }
コード例 #27
0
def test_simple(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.MIN.URL,
        {
            "collection": "a",
            "filter": {
                "field": "field_1",
                "operator": "!=",
                "value": "invalid"
            },
            "field": "meta_position",
        },
    )
    assert_success_response(response)
    assert response.json == {
        "min": 2,
        "position": 5,
    }
コード例 #28
0
def test_with_type(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    response = json_client.post(
        Route.MIN.URL,
        {
            "collection": "a",
            "filter": {
                "field": "meta_position",
                "operator": ">",
                "value": 2
            },
            "field": "meta_position",
            "type": "int",
        },
    )
    assert_success_response(response)
    assert response.json == {
        "min": 3,
        "position": 5,
    }
コード例 #29
0
def test_mapped_fields(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur)
    response = json_client.post(
        Route.GET_ALL.URL,
        {
            "collection": "a",
            "mapped_fields": ["field_4", "meta_position"]
        },
    )
    assert_success_response(response)
    assert response.json == {
        "1": {
            "field_4": "data",
            "meta_position": 2
        },
        "2": {
            "field_4": "data",
            "meta_position": 3
        },
    }
コード例 #30
0
def test_position_mapped_fields(json_client, db_connection, db_cur):
    setup_events_data(db_connection, db_cur)
    request = {
        "requests": [
            {
                "collection": "a",
                "ids": [1],
                "mapped_fields": ["field_1"]
            },
            {
                "collection": "b",
                "ids": [1, 2],
                "mapped_fields": ["field_4", "field_5"],
            },
        ],
        "position":
        1,
        "mapped_fields": ["common_field"],
    }
    response = json_client.post(Route.GET_MANY.URL, request)
    assert_success_response(response)
    assert response.json == {
        "a": {
            "1": {
                "field_1": "data",
                "common_field": 1
            }
        },
        "b": {
            "1": {
                "field_4": "data",
                "field_5": 42,
                "common_field": 2
            },
            "2": {
                "field_4": "data",
                "field_5": 42,
                "common_field": 3
            },
        },
    }