mirror of
https://github.com/apache/superset.git
synced 2026-05-08 09:25:56 +00:00
fix: datasource save, improve data validation (#22038)
This commit is contained in:
committed by
AAfghahi
parent
e048c07fb5
commit
53c71eec1d
@@ -292,6 +292,44 @@ class TestDatasource(SupersetTestCase):
|
||||
print(k)
|
||||
self.assertEqual(resp[k], datasource_post[k])
|
||||
|
||||
def test_save_default_endpoint_validation_fail(self):
|
||||
self.login(username="admin")
|
||||
tbl_id = self.get_table(name="birth_names").id
|
||||
|
||||
datasource_post = get_datasource_post()
|
||||
datasource_post["id"] = tbl_id
|
||||
datasource_post["owners"] = [1]
|
||||
datasource_post["default_endpoint"] = "http://www.google.com"
|
||||
data = dict(data=json.dumps(datasource_post))
|
||||
resp = self.client.post("/datasource/save/", data=data)
|
||||
assert resp.status_code == 400
|
||||
|
||||
def test_save_default_endpoint_validation_unsafe(self):
|
||||
self.app.config["PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET"] = False
|
||||
self.login(username="admin")
|
||||
tbl_id = self.get_table(name="birth_names").id
|
||||
|
||||
datasource_post = get_datasource_post()
|
||||
datasource_post["id"] = tbl_id
|
||||
datasource_post["owners"] = [1]
|
||||
datasource_post["default_endpoint"] = "http://www.google.com"
|
||||
data = dict(data=json.dumps(datasource_post))
|
||||
resp = self.client.post("/datasource/save/", data=data)
|
||||
assert resp.status_code == 200
|
||||
self.app.config["PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET"] = True
|
||||
|
||||
def test_save_default_endpoint_validation_success(self):
|
||||
self.login(username="admin")
|
||||
tbl_id = self.get_table(name="birth_names").id
|
||||
|
||||
datasource_post = get_datasource_post()
|
||||
datasource_post["id"] = tbl_id
|
||||
datasource_post["owners"] = [1]
|
||||
datasource_post["default_endpoint"] = "http://localhost/superset/1"
|
||||
data = dict(data=json.dumps(datasource_post))
|
||||
resp = self.client.post("/datasource/save/", data=data)
|
||||
assert resp.status_code == 200
|
||||
|
||||
def save_datasource_from_dict(self, datasource_post):
|
||||
data = dict(data=json.dumps(datasource_post))
|
||||
resp = self.get_json_resp("/datasource/save/", data)
|
||||
|
||||
Reference in New Issue
Block a user