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. 2
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 == {}
Esempio n. 3
0
def test_get_only_deleted_fail(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.ONLY_DELETED
        },
    )
    assert_error_response(response, ERROR_CODES.MODEL_NOT_DELETED)
Esempio n. 4
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
Esempio n. 5
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
Esempio n. 6
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],
    }
def test_complex(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, data)
    # (field_1 == 'data' and field_2 > 21) or (field_3 == False and not field_2 < 21)
    response = json_client.post(
        Route.FILTER.URL,
        {
            "collection": "a",
            "filter": {
                "or_filter": [
                    {
                        "and_filter": [
                            {
                                "field": "field_1",
                                "operator": "=",
                                "value": "data"
                            },
                            {
                                "field": "field_2",
                                "operator": ">",
                                "value": 21
                            },
                        ]
                    },
                    {
                        "and_filter": [
                            {
                                "field": "field_3",
                                "operator": "=",
                                "value": False
                            },
                            {
                                "not_filter": {
                                    "field": "field_2",
                                    "operator": "<",
                                    "value": 21,
                                }
                            },
                        ]
                    },
                ],
            },
        },
    )
    assert_success_response(response)
    assert response.json == {
        "data": {
            "1": data["a/1"],
            "2": data["a/2"]
        },
        "position": 3,
    }
Esempio n. 8
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,
    }
def test_neq(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": 21
            },
        },
    )
    assert_success_response(response)
    assert response.json == {"data": {"1": data["a/1"]}, "position": 3}
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}
Esempio n. 11
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,
    }
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_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,
    }
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, 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,
    }
Esempio n. 16
0
def test_simple(json_client, db_connection, db_cur):
    setup_data(db_connection, db_cur, {FQID: data})
    response = json_client.post(Route.GET.URL, {"fqid": FQID})
    assert_success_response(response)
    assert response.json == data