X-Git-Url: https://git.jsancho.org/?p=datasette-pytables.git;a=blobdiff_plain;f=tests%2Ftest_api.py;fp=tests%2Ftest_api.py;h=eb0453a12c1e804fa9f6fa744ba810b2ceebaf4c;hp=71c926277900aeaea63a1de202886797f2e08a2d;hb=f798c5a0c2feee8e31b1acd0731efcb1d783f778;hpb=54aeb4a8918f31b273875646d7a56a1c4da34564 diff --git a/tests/test_api.py b/tests/test_api.py index 71c9262..eb0453a 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -15,7 +15,7 @@ def test_database_page(app_client): data = response.json assert 'test_tables' == data['database'] assert [{ - 'name': '/array1', + 'name': '%array1', 'columns': ['value'], 'primary_keys': [], 'count': 2, @@ -24,7 +24,7 @@ def test_database_page(app_client): 'foreign_keys': {'incoming': [], 'outgoing': []}, 'private': False, }, { - 'name': '/group1/array2', + 'name': '%group1%array2', 'columns': ['value'], 'primary_keys': [], 'count': 10000, @@ -33,7 +33,7 @@ def test_database_page(app_client): 'foreign_keys': {'incoming': [], 'outgoing': []}, 'private': False, }, { - 'name': '/group1/table1', + 'name': '%group1%table1', 'columns': ['identity', 'idnumber', 'speed'], 'primary_keys': [], 'count': 10000, @@ -42,7 +42,7 @@ def test_database_page(app_client): 'foreign_keys': {'incoming': [], 'outgoing': []}, 'private': False, }, { - 'name': '/group2/multi', + 'name': '%group2%multi', 'columns': ['value'], 'primary_keys': [], 'count': 10, @@ -51,7 +51,7 @@ def test_database_page(app_client): 'foreign_keys': {'incoming': [], 'outgoing': []}, 'private': False, }, { - 'name': '/group2/table2', + 'name': '%group2%table2', 'columns': ['identity', 'idnumber', 'speed'], 'primary_keys': [], 'count': 10000, @@ -64,13 +64,13 @@ def test_database_page(app_client): def test_custom_sql(app_client): response = app_client.get( '/test_tables.json?' + urlencode({ - 'sql': 'select identity from [/group1/table1]', + 'sql': 'select identity from [%group1%table1]', '_shape': 'objects' }), ) data = response.json assert { - 'sql': 'select identity from [/group1/table1]', + 'sql': 'select identity from [%group1%table1]', 'params': {} } == data['query'] assert 1000 == len(data['rows']) @@ -87,13 +87,13 @@ def test_custom_sql(app_client): def test_custom_complex_sql(app_client): response = app_client.get( '/test_tables.json?' + urlencode({ - 'sql': 'select identity from [/group1/table1] where speed > 100 and idnumber < 55', + 'sql': 'select identity from [%group1%table1] where speed > 100 and idnumber < 55', '_shape': 'objects', }), ) data = response.json assert { - 'sql': 'select identity from [/group1/table1] where speed > 100 and idnumber < 55', + 'sql': 'select identity from [%group1%table1] where speed > 100 and idnumber < 55', 'params': {}, } == data['query'] assert 4 == len(data['rows']) @@ -110,13 +110,13 @@ def test_custom_complex_sql(app_client): def test_custom_pytables_sql(app_client): response = app_client.get( '/test_tables.json?' + urlencode({ - 'sql': 'select identity from [/group1/table1] where (speed > 100) & (speed < 500)', + 'sql': 'select identity from [%group1%table1] where (speed > 100) & (speed < 500)', '_shape': 'objects', }), ) data = response.json assert { - 'sql': 'select identity from [/group1/table1] where (speed > 100) & (speed < 500)', + 'sql': 'select identity from [%group1%table1] where (speed > 100) & (speed < 500)', 'params': {}, } == data['query'] assert 199 == len(data['rows']) @@ -139,11 +139,11 @@ def test_invalid_custom_sql(app_client): def test_table_json(app_client): response = app_client.get( - '/test_tables/%2Fgroup2%2Ftable2.json?_shape=objects', + '/test_tables/%group2%table2.json?_shape=objects', ) assert response.status == 200 data = response.json - assert data['query']['sql'] == 'select identity, idnumber, speed from [/group2/table2] limit 51' + assert data['query']['sql'] == 'select identity, idnumber, speed from [%group2%table2] limit 51' assert data['rows'][3:6] == [{ 'identity': 'This is particle: 3', 'idnumber': 3, @@ -170,7 +170,7 @@ def test_table_not_exists_json(app_client): def test_table_shape_arrays(app_client): response = app_client.get( - '/test_tables/%2Fgroup2%2Ftable2.json?_shape=arrays', + '/test_tables/%group2%table2.json?_shape=arrays', ) assert [ ['This is particle: 6', 6, 12.0], @@ -179,7 +179,7 @@ def test_table_shape_arrays(app_client): def test_table_shape_objects(app_client): response = app_client.get( - '/test_tables/%2Fgroup2%2Ftable2.json?_shape=objects', + '/test_tables/%group2%table2.json?_shape=objects', ) assert [{ 'identity': 'This is particle: 6', @@ -193,7 +193,7 @@ def test_table_shape_objects(app_client): def test_table_shape_array(app_client): response = app_client.get( - '/test_tables/%2Fgroup2%2Ftable2.json?_shape=array', + '/test_tables/%group2%table2.json?_shape=array', ) assert [{ 'identity': 'This is particle: 6', @@ -207,7 +207,7 @@ def test_table_shape_array(app_client): def test_table_shape_invalid(app_client): response = app_client.get( - '/test_tables/%2Fgroup2%2Ftable2.json?_shape=invalid', + '/test_tables/%group2%table2.json?_shape=invalid', ) assert { 'ok': False, @@ -217,10 +217,10 @@ def test_table_shape_invalid(app_client): } == 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), - ('/test_tables/%2Fgroup2%2Fmulti.json?_size=5', 10, 2), + ('/test_tables/%array1.json', 2, 1), + ('/test_tables/%array1.json?_size=1', 2, 2), + ('/test_tables/%group1%array2.json?_size=1000', 10000, 10), + ('/test_tables/%group2%multi.json?_size=5', 10, 2), ]) def test_paginate_tables_and_arrays(app_client, path, expected_rows, expected_pages): fetched = []