@@ -996,6 +996,41 @@ def test_tabstate_with_name(self):
996
996
997
997
self .assertEqual (payload ["label" ], "Untitled Query foo" )
998
998
999
+ def test_tabstate_update (self ):
1000
+ username = "admin"
1001
+ self .login (username )
1002
+ # create a tab
1003
+ data = {
1004
+ "queryEditor" : json .dumps (
1005
+ {
1006
+ "name" : "Untitled Query foo" ,
1007
+ "dbId" : 1 ,
1008
+ "schema" : None ,
1009
+ "autorun" : False ,
1010
+ "sql" : "SELECT ..." ,
1011
+ "queryLimit" : 1000 ,
1012
+ }
1013
+ )
1014
+ }
1015
+ resp = self .get_json_resp ("/tabstateview/" , data = data )
1016
+ tab_state_id = resp ["id" ]
1017
+ # update tab state with non-existing client_id
1018
+ client_id = "asdfasdf"
1019
+ data = {"sql" : json .dumps ("select 1" ), "latest_query_id" : json .dumps (client_id )}
1020
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1021
+ self .assertEqual (response .status_code , 400 )
1022
+ self .assertEqual (response .json ["error" ], "Bad request" )
1023
+ # generate query
1024
+ db .session .add (Query (client_id = client_id , database_id = 1 ))
1025
+ db .session .commit ()
1026
+ # update tab state with a valid client_id
1027
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1028
+ self .assertEqual (response .status_code , 200 )
1029
+ # nulls should be ok too
1030
+ data ["latest_query_id" ] = "null"
1031
+ response = self .client .put (f"/tabstateview/{ tab_state_id } " , data = data )
1032
+ self .assertEqual (response .status_code , 200 )
1033
+
999
1034
def test_virtual_table_explore_visibility (self ):
1000
1035
# test that default visibility it set to True
1001
1036
database = superset .utils .database .get_example_database ()
0 commit comments