@@ -996,6 +996,41 @@ def test_tabstate_with_name(self):
996996
997997 self .assertEqual (payload ["label" ], "Untitled Query foo" )
998998
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+
9991034 def test_virtual_table_explore_visibility (self ):
10001035 # test that default visibility it set to True
10011036 database = superset .utils .database .get_example_database ()
0 commit comments