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 == {}
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)
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_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}
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_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_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_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_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_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,
    }
예제 #13
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,
    }
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,
    }
예제 #15
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_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,
    }
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