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,
            },
        },
    }
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"]
        },
    }
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
            }
        },
    }
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": {}}}
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": {}}
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 == {}
Esempio n. 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")],
    }
Esempio n. 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")]}
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": {}}
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"}
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"]}
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"]}
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
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],
    }
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
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}
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}
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}
Esempio n. 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")],
    }
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,
    }
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": {}}
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,
    }
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,
    }
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
            }
        },
    }
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,
    }
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,
    }
Esempio n. 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,
    }
Esempio n. 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,
    }
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
        },
    }
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
            },
        },
    }