@@ -1197,6 +1197,41 @@ def test_tabstate_with_name(self):
1197
1197
1198
1198
self .assertEqual (payload ["label" ], "Untitled Query foo" )
1199
1199
1200
+ def test_tabstate_update (self ):
1201
+ username = "admin"
1202
+ self .login (username )
1203
+ # create a tab
1204
+ data = {
1205
+ "queryEditor" : json .dumps (
1206
+ {
1207
+ "name" : "Untitled Query foo" ,
1208
+ "dbId" : 1 ,
1209
+ "schema" : None ,
1210
+ "autorun" : False ,
1211
+ "sql" : "SELECT ..." ,
1212
+ "queryLimit" : 1000 ,
1213
+ }
1214
+ )
1215
+ }
1216
+ resp = self .get_json_resp ("/tabstateview/" , data = data )
1217
+ tab_state_id = resp ["id" ]
1218
+ # update tab state with non-existing client_id
1219
+ client_id = "asdfasdf"
1220
+ data = {"sql" : json .dumps ("select 1" ), "latest_query_id" : json .dumps (client_id )}
1221
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1222
+ self .assertEqual (response .status_code , 400 )
1223
+ self .assertEqual (response .json ["error" ], "Bad request" )
1224
+ # generate query
1225
+ db .session .add (Query (client_id = client_id , database_id = 1 ))
1226
+ db .session .commit ()
1227
+ # update tab state with a valid client_id
1228
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1229
+ self .assertEqual (response .status_code , 200 )
1230
+ # nulls should be ok too
1231
+ data ["latest_query_id" ] = "null"
1232
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1233
+ self .assertEqual (response .status_code , 200 )
1234
+
1200
1235
def test_virtual_table_explore_visibility (self ):
1201
1236
# test that default visibility it set to True
1202
1237
database = superset .utils .database .get_example_database ()
0 commit comments