@@ -354,26 +354,6 @@ def test_K_put_stream_file_chunked_transfer_encoding(self) -> None:
354
354
# Informational
355
355
# --------------
356
356
357
- def test_W_create_and_insert_into_generic_table (self ) -> None :
358
- # TODO: harden these tests - check return values
359
- data = [
360
- {"key1" : 7 , "key2" : "bla" , "id" : random .randint (0 , 1000000 )},
361
- {"key1" : 99 , "key3" : False , "id" : random .randint (0 , 1000000 )},
362
- ]
363
- headers = {"Authorization" : "Bearer " + TEST_TOKENS ["VALID" ]}
364
- resp = requests .put (
365
- self .base_url + "/tables/generic/mytest1" ,
366
- data = json .dumps (data ),
367
- headers = headers ,
368
- )
369
- self .assertEqual (resp .status_code , 201 )
370
- headers = {
371
- "Authorization" : "Bearer " + TEST_TOKENS ["EXPORT" ],
372
- "Accept" : "text/csv" ,
373
- }
374
- resp = requests .get (self .base_url + "/tables/generic/mytest1" , headers = headers )
375
- self .assertTrue (resp .status_code in [200 , 201 ])
376
-
377
357
def use_generic_table (self , app_route : str , url_tokens_method : str ) -> None :
378
358
methods = {"GET" : requests .get , "PUT" : requests .put , "DELETE" : requests .delete }
379
359
for url , token , method in url_tokens_method :
@@ -382,26 +362,50 @@ def use_generic_table(self, app_route: str, url_tokens_method: str) -> None:
382
362
resp = methods [method ](full_url , headers = headers )
383
363
self .assertTrue (resp .status_code in [200 , 201 ])
384
364
385
- def test_X_use_generic_table (self ) -> None :
386
- # TODO: harden these tests - check return values
387
- generic_url_tokens_method = [
388
- ("" , "VALID" , "GET" ),
389
- ("/mytest1" , "EXPORT" , "GET" ),
390
- ("/mytest1?select=key1&where=key2=eq.bla&order=key1.desc" , "EXPORT" , "GET" ),
391
- ("/mytest1" , "EXPORT" , "GET" ),
392
- ("/mytest1?where=key1=eq.99" , "ADMIN" , "DELETE" ),
393
- ("/mytest1" , "EXPORT" , "GET" ),
394
- ("/mytest1?where=key1=not.is.null" , "ADMIN" , "DELETE" ),
395
- ]
396
- for app , acl in [("/tables/generic" , generic_url_tokens_method )]:
397
- self .use_generic_table (app , acl )
398
- headers = {"Authorization" : "Bearer " + TEST_TOKENS ["VALID" ]}
399
- resp = requests .patch (
400
- self .base_url + "/tables/generic/mytest1?set=key1&where=key2=eq.bla" ,
401
- data = json .dumps ({"key1" : 1000 }),
365
+ def test_tables (self ) -> None :
366
+ headers = {"Authorization" : f'Bearer { TEST_TOKENS ["EXPORT" ]} ' }
367
+
368
+ # if it exists
369
+ resp = requests .delete (
370
+ f"{ self .base_url } /apps/generic/tables/table1" ,
402
371
headers = headers ,
403
372
)
404
- self .assertEqual (resp .status_code , 201 )
373
+ resp = requests .delete (
374
+ f"{ self .base_url } /apps/generic/tables/table2" ,
375
+ headers = headers ,
376
+ )
377
+
378
+ # create a table
379
+ data = {"x" : 10 , "y" : 11 }
380
+ resp = requests .put (
381
+ f"{ self .base_url } /apps/generic/tables/table1" ,
382
+ data = json .dumps (data ),
383
+ headers = headers ,
384
+ )
385
+ resp = requests .get (
386
+ f"{ self .base_url } /apps/generic/tables/table1" ,
387
+ headers = headers ,
388
+ )
389
+ self .assertEqual (json .loads (resp .text ), [data ])
390
+
391
+ # rename the table
392
+ resp = requests .post (
393
+ f"{ self .base_url } /apps/generic/tables/table1?alter=name=eq.table2" ,
394
+ headers = headers ,
395
+ )
396
+ self .assertEqual (json .loads (resp .text ), {"tables" : ["table1" ]})
397
+
398
+ resp = requests .get (
399
+ f"{ self .base_url } /apps/generic/tables/table2" ,
400
+ headers = headers ,
401
+ )
402
+ self .assertEqual (json .loads (resp .text ), [data ])
403
+
404
+ resp = requests .get (
405
+ f"{ self .base_url } /apps/generic/tables/table1" ,
406
+ headers = headers ,
407
+ )
408
+ self .assertEqual (resp .status_code , 404 )
405
409
406
410
def test_XXX_query_invalid (self ) -> None :
407
411
headers = {"Authorization" : "Bearer " + TEST_TOKENS ["VALID" ]}
@@ -2806,6 +2810,9 @@ def main() -> None:
2806
2810
"test_XXX_nettskjema_backend" ,
2807
2811
"test_survey_api_queries" ,
2808
2812
]
2813
+ tables = [
2814
+ "test_tables" ,
2815
+ ]
2809
2816
load = ["test_XXX_load" ]
2810
2817
apps = [
2811
2818
"test_app_backend" ,
@@ -2869,6 +2876,8 @@ def main() -> None:
2869
2876
tests .extend (logs )
2870
2877
if "storage" in sys .argv :
2871
2878
tests .extend (storage )
2879
+ if "tables" in sys .argv :
2880
+ tests .extend (tables )
2872
2881
if "all" in sys .argv :
2873
2882
tests .extend (base )
2874
2883
tests .extend (sns )
@@ -2885,6 +2894,7 @@ def main() -> None:
2885
2894
tests .extend (crypt )
2886
2895
tests .extend (mtime )
2887
2896
tests .extend (logs )
2897
+ tests .extend (tables )
2888
2898
tests .sort ()
2889
2899
suite = unittest .TestSuite ()
2890
2900
for test in tests :
0 commit comments