fix: deactivate embedding on a dashboard (#19626)

* fix tests

* commit it properly

* unnecessary commit, correct type in docstring

* unused import
This commit is contained in:
David Aaron Suddjian 2022-04-15 16:15:27 -07:00 committed by GitHub
parent 06ec88eb99
commit ae70212df3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 3 deletions

View File

@ -175,7 +175,7 @@ class BaseDAO:
def delete(cls, model: Model, commit: bool = True) -> Model:
"""
Generic delete a model
:raises: DAOCreateFailedError
:raises: DAODeleteFailedError
"""
try:
db.session.delete(model)

View File

@ -1191,5 +1191,6 @@ class DashboardRestApi(BaseSupersetModelRestApi):
500:
$ref: '#/components/responses/500'
"""
dashboard.embedded = []
for embedded in dashboard.embedded:
DashboardDAO.delete(embedded)
return self.response(200, message="OK")

View File

@ -1796,6 +1796,8 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
self.assertNotEqual(result["uuid"], "")
self.assertEqual(result["allowed_domains"], allowed_domains)
db.session.expire_all()
# get returns value
resp = self.get_assert_metric(uri, "get_embedded")
self.assertEqual(resp.status_code, 200)
@ -1810,9 +1812,13 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
# put succeeds and returns value
resp = self.post_assert_metric(uri, {"allowed_domains": []}, "set_embedded")
self.assertEqual(resp.status_code, 200)
result = json.loads(resp.data.decode("utf-8"))["result"]
self.assertEqual(resp.status_code, 200)
self.assertIsNotNone(result["uuid"])
self.assertNotEqual(result["uuid"], "")
self.assertEqual(result["allowed_domains"], allowed_domains)
self.assertEqual(result["allowed_domains"], [])
db.session.expire_all()
# get returns changed value
resp = self.get_assert_metric(uri, "get_embedded")
@ -1825,6 +1831,8 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
resp = self.delete_assert_metric(uri, "delete_embedded")
self.assertEqual(resp.status_code, 200)
db.session.expire_all()
# get returns 404
resp = self.get_assert_metric(uri, "get_embedded")
self.assertEqual(resp.status_code, 404)