def test_limit_offset_max_limit(client): response = client.get("/limit_offset_widgets?limit=5") assert_response( response, 200, [ { "id": "1", "size": 1 }, { "id": "2", "size": 2 }, { "id": "3", "size": 3 }, { "id": "4", "size": 1 }, ], ) assert get_meta(response) == {"has_next_page": True}
def test_unset_limit(client): response = client.get('/optional_limit_widgets') assert_response(response, 200, [ { 'id': '1', 'size': 1, }, { 'id': '2', 'size': 2, }, { 'id': '3', 'size': 3, }, { 'id': '4', 'size': 1, }, { 'id': '5', 'size': 2, }, { 'id': '6', 'size': 3, }, ]) assert get_meta(response) == { 'has_next_page': False, }
def test_unset_limit(client): response = client.get("/optional_limit_widgets") assert_response( response, 200, [ { "id": "1", "size": 1 }, { "id": "2", "size": 2 }, { "id": "3", "size": 3 }, { "id": "4", "size": 1 }, { "id": "5", "size": 2 }, { "id": "6", "size": 3 }, ], ) assert get_meta(response) == {"has_next_page": False}
def test_relay_cursor_create(client): response = client.post('/relay_cursor_widgets', data={ 'size': 1, }) assert get_meta(response) == { 'cursor': 'Nw', }
def test_relay_cursor_create_sorted(client): response = client.post('/relay_cursor_widgets?sort=size,-id', data={ 'size': 1, }) assert get_meta(response) == { 'cursor': 'MQ.Nw', }
def test_relay_reverse_cursor_inverse(client, add_widgets): add_widgets(( { "id": "1", "size": 2 }, { "id": "2", "size": 2 }, { "id": "3", "size": 1 }, { "id": "4", "size": 5 }, { "id": "5", "size": 3 }, )) first_three_items = [ { "id": "4", "size": 5 }, { "id": "5", "size": 3 }, { "id": "2", "size": 2 }, ] resp = client.get("/relay_cursor_widgets?sort=-size&limit=3") assert_response(resp, 200, first_three_items) # this should be the next item in the list above before = encode_cursor((2, "1")) resp = client.get( f"/relay_cursor_widgets?sort=-size&limit=3&before={before}") assert_response(resp, 200, first_three_items) resp = client.get(f"/relay_cursor_widgets?sort=-size&before={before}") assert_response(resp, 200, first_three_items[1:]) assert get_meta(resp) == { "has_next_page": True, "cursors": [encode_cursor((3, "5")), encode_cursor((2, "2"))], }
def test_limit(client): response = client.get("/optional_limit_widgets?limit=2") assert_response(response, 200, [{ "id": "1", "size": 1 }, { "id": "2", "size": 2 }]) assert get_meta(response) == {"has_next_page": True}
def test_max_limit(client, data): response = client.get("/max_limit_widgets") assert_response(response, 200, [{ "id": "1", "size": 1 }, { "id": "2", "size": 2 }]) assert get_meta(response) == {"has_next_page": True}
def test_limit_offset_offset_end(client): response = client.get("/limit_offset_widgets?offset=4") assert_response(response, 200, [{ "id": "5", "size": 2 }, { "id": "6", "size": 3 }]) assert get_meta(response) == {"has_next_page": False}
def test_limit_offset_offset(client): response = client.get("/limit_offset_widgets?offset=2") assert_response(response, 200, [{ "id": "3", "size": 3 }, { "id": "4", "size": 1 }]) assert get_meta(response) == {"has_next_page": True}
def test_page_default(client): response = client.get("/page_widgets") assert_response(response, 200, [{ "id": "1", "size": 1 }, { "id": "2", "size": 2 }]) assert get_meta(response) == {"has_next_page": True}
def test_page(client): response = client.get("/page_widgets?page=1") assert_response(response, 200, [{ "id": "3", "size": 3 }, { "id": "4", "size": 1 }]) assert get_meta(response) == {"has_next_page": True}
def test_relay_cursor_create_sorted(client): response = request( client, 'POST', '/relay_cursor_widgets?sort=size,-id', { 'size': 1, }, ) assert get_meta(response) == { 'cursor': 'MQ.Nw', }
def test_limit_offset_filtered_offset(client): response = client.get('/limit_offset_widgets?size=2&offset=1') assert_response(response, 200, [ { 'id': '5', 'size': 2, }, ]) assert get_meta(response) == { 'has_next_page': False, }
def test_limit_offset_offset_truncate(client): response = client.get('/limit_offset_widgets?offset=5') assert_response(response, 200, [ { 'id': '6', 'size': 3, }, ]) assert get_meta(response) == { 'has_next_page': False }
def test_limit_offset_offset_truncate(client): response = client.get('/limit_offset_widgets?offset=5') assert_response(response, 200, [ { 'id': '6', 'size': 3, }, ]) assert get_meta(response) == { 'has_next_page': False, }
def test_limit_offset_filtered_offset(client): response = client.get('/limit_offset_widgets?size=2&offset=1') assert_response(response, 200, [ { 'id': '5', 'size': 2, }, ]) assert get_meta(response) == { 'has_next_page': False }
def test_relay_cursor_create(client): response = request( client, 'POST', '/relay_cursor_widgets', { 'size': 1, }, ) assert get_meta(response) == { 'cursor': 'Nw', }
def test_relay_cursor_sorted_redundant(client): response = client.get("/relay_cursor_widgets?sort=size,id&cursor=MQ.MQ") assert_response(response, 200, [{ "id": "4", "size": 1 }, { "id": "2", "size": 2 }]) assert get_meta(response) == { "has_next_page": True, "cursors": ["MQ.NA", "Mg.Mg"], }
def test_relay_cursor_sorted_default(client): response = client.get("/relay_cursor_widgets?sort=size") assert_response(response, 200, [{ "id": "1", "size": 1 }, { "id": "4", "size": 1 }]) assert get_meta(response) == { "has_next_page": True, "cursors": ["MQ.MQ", "MQ.NA"], }
def test_relay_cursor_default(client): response = client.get("/relay_cursor_widgets") assert_response(response, 200, [{ "id": "1", "size": 1 }, { "id": "2", "size": 2 }]) assert get_meta(response) == { "has_next_page": True, "cursors": ["MQ", "Mg"], }
def test_relay_cursor(client): response = client.get("/relay_cursor_widgets?cursor=MQ") assert_response(response, 200, [{ "id": "2", "size": 2 }, { "id": "3", "size": 3 }]) assert get_meta(response) == { "has_next_page": True, "cursors": ["Mg", "Mw"], }
def test_relay_cursor_sorted_inverse(client): response = client.get("/relay_cursor_widgets?sort=-size&cursor=Mg.NQ") assert_response(response, 200, [{ "id": "2", "size": 2 }, { "id": "4", "size": 1 }]) assert get_meta(response) == { "has_next_page": True, "cursors": ["Mg.Mg", "MQ.NA"], }
def test_max_limit(client): response = client.get('/max_limit_widgets') assert_response(response, 200, [ { 'id': '1', 'size': 1, }, { 'id': '2', 'size': 2, }, ]) assert get_meta(response) == { 'has_next_page': True, }
def test_page(client): response = client.get('/page_widgets?page=1') assert_response(response, 200, [ { 'id': '3', 'size': 3, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True }
def test_page(client): response = client.get('/page_widgets?page=1') assert_response(response, 200, [ { 'id': '3', 'size': 3, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True, }
def test_page_default(client): response = client.get('/page_widgets') assert_response(response, 200, [ { 'id': '1', 'size': 1, }, { 'id': '2', 'size': 2, }, ]) assert get_meta(response) == { 'has_next_page': True }
def test_limit_offset_offset(client): response = client.get('/limit_offset_widgets?offset=2') assert_response(response, 200, [ { 'id': '3', 'size': 3, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True }
def test_limit_offset_offset(client): response = client.get('/limit_offset_widgets?offset=2') assert_response(response, 200, [ { 'id': '3', 'size': 3, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True, }
def test_relay_cursor_sorted_default(client): response = client.get('/relay_cursor_widgets?sort=size') assert_response(response, 200, [ { 'id': '1', 'size': 1, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True, 'cursors': [ 'MQ.MQ', 'MQ.NA', ], }
def test_relay_cursor_sorted_inverse(client): response = client.get('/relay_cursor_widgets?sort=-size&cursor=Mg.NQ') assert_response(response, 200, [ { 'id': '2', 'size': 2, }, { 'id': '4', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True, 'cursors': [ 'Mg.Mg', 'MQ.NA', ], }
def test_relay_cursor(client): response = client.get('/relay_cursor_widgets?cursor=MQ') assert_response(response, 200, [ { 'id': '2', 'size': 2, }, { 'id': '3', 'size': 3, }, ]) assert get_meta(response) == { 'has_next_page': True, 'cursors': [ 'Mg', 'Mw', ], }
def test_relay_cursor_sorted_default(client): response = client.get('/relay_cursor_widgets?sort=size,-id') assert_response(response, 200, [ { 'id': '4', 'size': 1, }, { 'id': '1', 'size': 1, }, ]) assert get_meta(response) == { 'has_next_page': True, 'cursors': [ 'MQ.NA', 'MQ.MQ', ], }
def test_relay_cursor_default(client): response = client.get('/relay_cursor_widgets') assert_response(response, 200, [ { 'id': '1', 'size': 1, }, { 'id': '2', 'size': 2, }, ]) assert get_meta(response) == { 'has_next_page': True, 'cursors': [ 'MQ', 'Mg', ], }
def test_limit_offset_filtered_offset(client): response = client.get("/limit_offset_widgets?size=2&offset=1") assert_response(response, 200, [{"id": "5", "size": 2}]) assert get_meta(response) == {"has_next_page": False}
def test_limit_offset_filtered(client, data): response = client.get("/limit_offset_widgets?size=2&limit=1") assert_response(response, 200, [{"id": "2", "size": 2}]) assert get_meta(response) == {"has_next_page": True}
def test_relay_cursor_create_sorted(client): response = client.post("/relay_cursor_widgets?sort=size", data={"size": 1}) assert_response(response, 201, {"size": 1}) assert get_meta(response) == {"cursor": "MQ.Nw"}
def test_relay_cursor_create(client): response = client.post("/relay_cursor_widgets", data={"size": 1}) assert get_meta(response) == {"cursor": "Nw"}
def test_limit_offset_offset_truncate(client, data): response = client.get("/limit_offset_widgets?offset=5") assert_response(response, 200, [{"id": "6", "size": 3}]) assert get_meta(response) == {"has_next_page": False}