fix: dashboard endpoint sig changed (#10220)

* fix(thumbnails): dashboard endpoint sig changed

* fix, flask get url for Superset.dashboard

* add simple test
This commit is contained in:
Daniel Vaz Gaspar 2020-07-09 11:42:38 +01:00 committed by GitHub
parent e94c9804a2
commit 6224edd42d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 6 deletions

View File

@ -530,7 +530,7 @@ def compute_thumbnails(
"Superset.slice", slice_id=model.id, standalone="true"
)
else:
url = get_url_path("Superset.dashboard", dashboard_id=model.id)
url = get_url_path("Superset.dashboard", dashboard_id_or_slug=model.id)
func(url, model.digest, force=force)
if not charts_only:

View File

@ -510,7 +510,9 @@ class DashboardRestApi(BaseSupersetModelRestApi):
if not dashboard:
return self.response_404()
dashboard_url = get_url_path("Superset.dashboard", dashboard_id=dashboard.id)
dashboard_url = get_url_path(
"Superset.dashboard", dashboard_id_or_slug=dashboard.id
)
# If force, request a screenshot from the workers
if kwargs["rison"].get("force", False):
cache_dashboard_thumbnail.delay(dashboard_url, dashboard.digest, force=True)

View File

@ -481,7 +481,7 @@ class Dashboard( # pylint: disable=too-many-instance-attributes
def event_after_dashboard_changed( # pylint: disable=unused-argument
mapper: Mapper, connection: Connection, target: Dashboard
) -> None:
url = get_url_path("Superset.dashboard", dashboard_id=target.id)
url = get_url_path("Superset.dashboard", dashboard_id_or_slug=target.id)
cache_dashboard_thumbnail.delay(url, target.digest, force=True)

View File

@ -20,9 +20,8 @@ import json
import unittest
from random import random
from flask import escape
from flask import escape, url_for
from sqlalchemy import func
from typing import Dict
import tests.test_app
from superset import db, security_manager
@ -30,7 +29,6 @@ from superset.connectors.sqla.models import SqlaTable
from superset.models import core as models
from superset.models.dashboard import Dashboard
from superset.models.slice import Slice
from superset.views import core as views
from .base_tests import SupersetTestCase
@ -57,6 +55,9 @@ class TestDashboard(SupersetTestCase):
for title, url in urls.items():
assert escape(title) in self.client.get(url).data.decode("utf-8")
def test_superset_dashboard_url(self):
url_for("Superset.dashboard", dashboard_id_or_slug=1)
def test_new_dashboard(self):
self.login(username="admin")
dash_count_before = db.session.query(func.count(Dashboard.id)).first()[0]