]> git.jsancho.org Git - datasette-pytables.git/blobdiff - tests/test_api.py
datasette==0.51.1
[datasette-pytables.git] / tests / test_api.py
index 71c926277900aeaea63a1de202886797f2e08a2d..eb0453a12c1e804fa9f6fa744ba810b2ceebaf4c 100644 (file)
@@ -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 = []