fix: avoid 500 errors with SQLLAB_BACKEND_PERSISTENCE (#25553)

(cherry picked from commit 99f79f5143)
This commit is contained in:
Igor Khrol
2023-10-13 22:30:19 +03:00
committed by Michael S. Molina
parent 701ee30d1e
commit ec3bed709e
2 changed files with 39 additions and 0 deletions

View File

@@ -1197,6 +1197,41 @@ class TestCore(SupersetTestCase, InsertChartMixin):
self.assertEqual(payload["label"], "Untitled Query foo")
def test_tabstate_update(self):
username = "admin"
self.login(username)
# create a tab
data = {
"queryEditor": json.dumps(
{
"name": "Untitled Query foo",
"dbId": 1,
"schema": None,
"autorun": False,
"sql": "SELECT ...",
"queryLimit": 1000,
}
)
}
resp = self.get_json_resp("/tabstateview/", data=data)
tab_state_id = resp["id"]
# update tab state with non-existing client_id
client_id = "asdfasdf"
data = {"sql": json.dumps("select 1"), "latest_query_id": json.dumps(client_id)}
response = self.client.put(f"/tabstateview/{tab_state_id}", data=data)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.json["error"], "Bad request")
# generate query
db.session.add(Query(client_id=client_id, database_id=1))
db.session.commit()
# update tab state with a valid client_id
response = self.client.put(f"/tabstateview/{tab_state_id}", data=data)
self.assertEqual(response.status_code, 200)
# nulls should be ok too
data["latest_query_id"] = "null"
response = self.client.put(f"/tabstateview/{tab_state_id}", data=data)
self.assertEqual(response.status_code, 200)
def test_virtual_table_explore_visibility(self):
# test that default visibility it set to True
database = superset.utils.database.get_example_database()