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, }
def test_same_collection(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": [2], "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" }, "b/2": { "field_5": 42 }, }
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_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, 2], "mapped_fields": ["field_4", "field_5"], }, ], "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 }, "b/2": { "field_4": "data", "field_5": 42, "common_field": 3 }, }
def test_complex(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) # (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 == list(data.values())
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")], }
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_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_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_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_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) 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_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_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_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_empty_field(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) response = json_client.post( Route.FILTER.URL, { "collection": "a", "filter": {"field": "empty", "operator": "=", "value": "data"}, }, ) assert_success_response(response) assert response.json == []
def test_false(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) 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"] is False
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_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_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_neq(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) response = json_client.post( Route.FILTER.URL, { "collection": "a", "filter": {"field": "field_2", "operator": "!=", "value": 21}, }, ) assert_success_response(response) assert response.json == [data["a/1"]]
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_leq(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) response = json_client.post( Route.FILTER.URL, { "collection": "a", "filter": {"field": "field_2", "operator": "<=", "value": 42}, }, ) assert_success_response(response) assert response.json == list(data.values())
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_mapped_fields(json_client, db_connection, db_cur): setup_data(db_connection, db_cur) 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 == [{"field_3": True, "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_true(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": "data"}, }, ) assert_success_response(response) assert response.json == { "exists": True, "position": 3, }
def test_gt(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_eq_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": {"2": data["a/2"]}, "position": 3}