X-Git-Url: https://git.jsancho.org/?p=datasette-pytables.git;a=blobdiff_plain;f=tests%2Ftest_api.py;h=2274c3d294ec54041772211faf39c80e1cf81a50;hp=c9ef73ed35047a60b54df97b424684caf443c68f;hb=d411de8cb97045c9b7e51dec6182a89edef2701d;hpb=4063788a1580d4d236d3b89b8c6d87e12c158f33 diff --git a/tests/test_api.py b/tests/test_api.py index c9ef73e..2274c3d 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -63,7 +63,7 @@ def test_custom_sql(app_client): 'sql': 'select identity from [/group1/table1]', 'params': {} } == data['query'] - assert 50 == len(data['rows']) + assert 1000 == len(data['rows']) assert [ {'identity': 'This is particle: 0'}, {'identity': 'This is particle: 1'}, @@ -172,3 +172,25 @@ def test_table_shape_invalid(app_client): 'status': 400, 'title': None, } == response.json + +@pytest.mark.parametrize('path, expected_rows, expected_pages', [ + ('/test_tables/%2Farray1.json', 2, 1), + ('/test_tables/%2Farray1.json?_size=1', 2, 2), + ('/test_tables/%2Fgroup1%2Farray2.json?_size=1000', 10000, 10), +]) +def test_paginate_tables_and_arrays(app_client, path, expected_rows, expected_pages): + fetched = [] + count = 0 + while path: + response = app_client.get(path, gather_request=False) + print("*****", response.json) + assert 200 == response.status + count += 1 + fetched.extend(response.json['rows']) + path = response.json['next_url'] + if path: + assert response.json['next'] + assert '_next={}'.format(response.json['next']) in path + + assert expected_rows == len(fetched) + assert expected_pages == count