From 2ac7139d11761e8fc9e8e457f2a79b21168efe76 Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Fri, 8 Apr 2022 00:46:12 -0700 Subject: [PATCH 1/4] fix tests --- tests/integration_tests/dashboards/api_tests.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/integration_tests/dashboards/api_tests.py b/tests/integration_tests/dashboards/api_tests.py index a179fa7c7e453..743d25622a39a 100644 --- a/tests/integration_tests/dashboards/api_tests.py +++ b/tests/integration_tests/dashboards/api_tests.py @@ -1740,6 +1740,8 @@ def test_embedded_dashboards(self): 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) @@ -1754,9 +1756,13 @@ def test_embedded_dashboards(self): # 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") @@ -1769,6 +1775,8 @@ def test_embedded_dashboards(self): 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) From d01db2230ede353060afcd25031ddfba2781a18b Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Fri, 8 Apr 2022 01:01:47 -0700 Subject: [PATCH 2/4] commit it properly --- superset/dashboards/api.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py index d97b5f78e3c04..1503359ecab5d 100644 --- a/superset/dashboards/api.py +++ b/superset/dashboards/api.py @@ -77,7 +77,7 @@ thumbnail_query_schema, ) from superset.embedded.dao import EmbeddedDAO -from superset.extensions import event_logger +from superset.extensions import db, event_logger from superset.models.dashboard import Dashboard from superset.models.embedded_dashboard import EmbeddedDashboard from superset.tasks.thumbnails import cache_dashboard_thumbnail @@ -1192,5 +1192,7 @@ def delete_embedded(self, dashboard: Dashboard) -> Response: 500: $ref: '#/components/responses/500' """ - dashboard.embedded = [] + for embedded in dashboard.embedded: + DashboardDAO.delete(embedded) + db.session.commit() return self.response(200, message="OK") From 1e64ab2f5ddd3b24fab2c0a0545f2ec76287f18b Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Fri, 8 Apr 2022 10:15:15 -0700 Subject: [PATCH 3/4] unnecessary commit, correct type in docstring --- superset/dao/base.py | 2 +- superset/dashboards/api.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/superset/dao/base.py b/superset/dao/base.py index 607967e3041e2..0090c4e535e23 100644 --- a/superset/dao/base.py +++ b/superset/dao/base.py @@ -175,7 +175,7 @@ def update( def delete(cls, model: Model, commit: bool = True) -> Model: """ Generic delete a model - :raises: DAOCreateFailedError + :raises: DAODeleteFailedError """ try: db.session.delete(model) diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py index 1503359ecab5d..1a33cd1f7aa44 100644 --- a/superset/dashboards/api.py +++ b/superset/dashboards/api.py @@ -1194,5 +1194,4 @@ def delete_embedded(self, dashboard: Dashboard) -> Response: """ for embedded in dashboard.embedded: DashboardDAO.delete(embedded) - db.session.commit() return self.response(200, message="OK") From 07c9678d9638a1175dd8bd99a8acf60b516404e6 Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Fri, 8 Apr 2022 12:39:23 -0700 Subject: [PATCH 4/4] unused import --- superset/dashboards/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py index 1a33cd1f7aa44..eaa5660752cb8 100644 --- a/superset/dashboards/api.py +++ b/superset/dashboards/api.py @@ -77,7 +77,7 @@ thumbnail_query_schema, ) from superset.embedded.dao import EmbeddedDAO -from superset.extensions import db, event_logger +from superset.extensions import event_logger from superset.models.dashboard import Dashboard from superset.models.embedded_dashboard import EmbeddedDashboard from superset.tasks.thumbnails import cache_dashboard_thumbnail