X-Git-Url: https://git.jsancho.org/?p=datasette-pytables.git;a=blobdiff_plain;f=tests%2Ftest_api.py;h=80e379c93d81595d7584647c1654b6390eaef7a7;hp=5d0bfdcc212c0d432bdf6d0982d6b99e1bdc7a69;hb=745f744d01ebe1eff321fb70c580eac1f8b3ad4f;hpb=b1fff4628f94a3f3eab70f5fcc1e5005679ef1d0 diff --git a/tests/test_api.py b/tests/test_api.py index 5d0bfdc..80e379c 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -2,10 +2,8 @@ from .fixtures import app_client import pytest from urllib.parse import urlencode -pytest.fixture(scope='module')(app_client) - def test_homepage(app_client): - _, response = app_client.get('/.json') + response = app_client.get('/.json') assert response.status == 200 assert response.json.keys() == {'test_tables': 0}.keys() d = response.json['test_tables'] @@ -13,7 +11,7 @@ def test_homepage(app_client): assert d['tables_count'] == 5 def test_database_page(app_client): - response = app_client.get('/test_tables.json', gather_request=False) + response = app_client.get('/test_tables.json') data = response.json assert 'test_tables' == data['database'] assert [{ @@ -21,46 +19,46 @@ def test_database_page(app_client): 'columns': ['value'], 'primary_keys': [], 'count': 2, - 'label_column': None, 'hidden': False, 'fts_table': None, - 'foreign_keys': {'incoming': [], 'outgoing': []} + 'foreign_keys': {'incoming': [], 'outgoing': []}, + 'private': False, }, { 'name': '/group1/array2', 'columns': ['value'], 'primary_keys': [], 'count': 10000, - 'label_column': None, 'hidden': False, 'fts_table': None, - 'foreign_keys': {'incoming': [], 'outgoing': []} + 'foreign_keys': {'incoming': [], 'outgoing': []}, + 'private': False, }, { 'name': '/group1/table1', 'columns': ['identity', 'idnumber', 'speed'], 'primary_keys': [], 'count': 10000, - 'label_column': None, 'hidden': False, 'fts_table': None, - 'foreign_keys': {'incoming': [], 'outgoing': []} + 'foreign_keys': {'incoming': [], 'outgoing': []}, + 'private': False, }, { 'name': '/group2/multi', 'columns': ['value'], 'primary_keys': [], 'count': 10, - 'label_column': None, 'hidden': False, 'fts_table': None, - 'foreign_keys': {'incoming': [], 'outgoing': []} + 'foreign_keys': {'incoming': [], 'outgoing': []}, + 'private': False, }, { 'name': '/group2/table2', 'columns': ['identity', 'idnumber', 'speed'], 'primary_keys': [], 'count': 10000, - 'label_column': None, 'hidden': False, 'fts_table': None, - 'foreign_keys': {'incoming': [], 'outgoing': []} + 'foreign_keys': {'incoming': [], 'outgoing': []}, + 'private': False, }] == data['tables'] def test_custom_sql(app_client): @@ -69,7 +67,6 @@ def test_custom_sql(app_client): 'sql': 'select identity from [/group1/table1]', '_shape': 'objects' }), - gather_request=False ) data = response.json assert { @@ -91,21 +88,20 @@ 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', - '_shape': 'objects' + '_shape': 'objects', }), - gather_request=False ) data = response.json assert { 'sql': 'select identity from [/group1/table1] where speed > 100 and idnumber < 55', - 'params': {} + 'params': {}, } == data['query'] assert 4 == len(data['rows']) assert [ {'identity': 'This is particle: 51'}, {'identity': 'This is particle: 52'}, {'identity': 'This is particle: 53'}, - {'identity': 'This is particle: 54'} + {'identity': 'This is particle: 54'}, ] == data['rows'] assert ['identity'] == data['columns'] assert 'test_tables' == data['database'] @@ -115,20 +111,19 @@ 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)', - '_shape': 'objects' - }), - gather_request=False + '_shape': 'objects', + }), ) data = response.json assert { 'sql': 'select identity from [/group1/table1] where (speed > 100) & (speed < 500)', - 'params': {} + 'params': {}, } == data['query'] assert 199 == len(data['rows']) assert [ {'identity': 'This is particle: 51'}, {'identity': 'This is particle: 52'}, - {'identity': 'This is particle: 53'} + {'identity': 'This is particle: 53'}, ] == data['rows'][:3] assert ['identity'] == data['columns'] assert 'test_tables' == data['database'] @@ -137,7 +132,6 @@ def test_custom_pytables_sql(app_client): def test_invalid_custom_sql(app_client): response = app_client.get( '/test_tables.json?sql=.schema', - gather_request=False ) assert response.status == 400 assert response.json['ok'] is False @@ -146,7 +140,6 @@ def test_invalid_custom_sql(app_client): def test_table_json(app_client): response = app_client.get( '/test_tables/%2Fgroup2%2Ftable2.json?_shape=objects', - gather_request=False ) assert response.status == 200 data = response.json @@ -175,13 +168,12 @@ def test_table_not_exists_json(app_client): 'status': 404, 'title': None, } == app_client.get( - '/test_tables/blah.json', gather_request=False + '/test_tables/blah.json', ).json def test_table_shape_arrays(app_client): response = app_client.get( '/test_tables/%2Fgroup2%2Ftable2.json?_shape=arrays', - gather_request=False ) assert [ [6, 'This is particle: 6', 6, 12.0], @@ -191,7 +183,6 @@ 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', - gather_request=False ) assert [{ 'rowid': 6, @@ -208,7 +199,6 @@ 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', - gather_request=False ) assert [{ 'rowid': 6, @@ -225,7 +215,6 @@ 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', - gather_request=False ) assert { 'ok': False, @@ -244,7 +233,7 @@ def test_paginate_tables_and_arrays(app_client, path, expected_rows, expected_pa fetched = [] count = 0 while path: - response = app_client.get(path, gather_request=False) + response = app_client.get(path) print("*****", response.json) assert 200 == response.status count += 1