@@ -882,6 +882,65 @@ def test_rename_table():
882882 tap .rename_table (table_name = tableName , new_table_name = newTableName , new_column_names_dict = newColumnNames )
883883
884884
885+ def test_delete_user_table ():
886+ tableName = 'user_test.table_test_rename'
887+ conn_handler = DummyConnHandler ()
888+ dummyResponse = DummyResponse (200 )
889+
890+ url_encode = urlencode ({'DELETE' : 'TRUE' , 'FORCE_REMOVAL' : 'FALSE' , 'TABLE_NAME' : 'user_test.table_test_rename' })
891+ conn_handler .set_default_response (dummyResponse )
892+ conn_handler .execute_upload (data = url_encode )
893+ tap = TapPlus (url = "http://test:1111/tap" , connhandler = conn_handler )
894+ tap .delete_user_table (table_name = tableName , force_removal = False , verbose = False )
895+
896+
897+ def test_delete_user_table_2 ():
898+ conn_handler = DummyConnHandler ()
899+ dummyResponse = DummyResponse (200 )
900+
901+ headers = [('Date' , 'Sat, 12 Apr 2025 05:10:47 GMT' ),
902+ ('Server' , 'Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips mod_jk/1.2.43' ),
903+ ('Set-Cookie' , 'JSESSIONID=E677B51BA5C4837347D1E17D4E36647E; Path=/data-server; Secure; HttpOnly' ),
904+ ('X-Content-Type-Options' , 'nosniff' ), ('X-XSS-Protection' , '0' ),
905+ ('Cache-Control' , 'no-cache, no-store, max-age=0, must-revalidate' ), ('Pragma' , 'no-cache' ),
906+ ('Expires' , '0' ), ('X-Frame-Options' , 'SAMEORIGIN' ),
907+ ('Set-Cookie' , 'SESSION=ZjQ3MjIzMDAtNjNiYy00Mj; Path=/data-server; Secure; HttpOnly; SameSite=Lax' ),
908+ ('Transfer-Encoding' , 'chunked' ), ('Content-Type' , 'text/plain; charset=UTF-8' )]
909+
910+ dummyResponse .set_data (method = 'POST' , headers = headers )
911+
912+ url_encode = urlencode ({'DELETE' : 'TRUE' , 'FORCE_REMOVAL' : 'FALSE' , 'TABLE_NAME' : 'user_test.table_test_rename' })
913+ conn_handler .set_default_response (dummyResponse )
914+ conn_handler .execute_upload (data = url_encode )
915+ tap = TapPlus (url = "http://test:1111/tap" , connhandler = conn_handler )
916+ tap .login (user = "user" , password = "password" )
917+
918+ tableName = 'table_test_rename'
919+
920+ tap .delete_user_table (table_name = tableName , force_removal = False , verbose = False )
921+
922+
923+ def test_delete_user_table_exception ():
924+ tableName = 'test.table_test_rename'
925+ conn_handler = DummyConnHandler ()
926+ dummyResponse = DummyResponse (200 )
927+
928+ url_encode = urlencode ({'DELETE' : 'TRUE' , 'FORCE_REMOVAL' : 'FALSE' , 'TABLE_NAME' : 'user_test.table_test_rename' })
929+ conn_handler .set_default_response (dummyResponse )
930+ conn_handler .execute_upload (data = url_encode )
931+ tap = TapPlus (url = "http://test:1111/tap" , connhandler = conn_handler )
932+
933+ with pytest .raises (ValueError ,
934+ match = "Invalid table name test.table_test_rename: expected format user_<user_name>.<table_name" ):
935+ tap .delete_user_table (table_name = tableName , force_removal = False , verbose = False )
936+
937+ #
938+
939+ tableName = 'table_test_rename'
940+ with pytest .raises (ValueError , match = "You must login to delete the table" ):
941+ tap .delete_user_table (table_name = tableName , force_removal = False , verbose = False )
942+
943+
885944def __find_table (schemaName , tableName , tables ):
886945 qualified_name = f"{ schemaName } .{ tableName } "
887946 for table in tables :
0 commit comments