mirror of
https://github.com/apache/superset.git
synced 2026-04-18 23:55:00 +00:00
[cache warm_up] warm_up slice with dashboard default_filters (#9311)
* [cache warm_up] warm_up slice with dashboard default_filters * update Celery warmup tasks * fix code review comments * add try catch and type checking for parsed dash metadata * extra code review fix
This commit is contained in:
@@ -56,6 +56,7 @@ from superset.utils.core import (
|
||||
zlib_decompress,
|
||||
)
|
||||
from superset.views.utils import get_time_range_endpoints
|
||||
from superset.views.utils import build_extra_filters
|
||||
from tests.base_tests import SupersetTestCase
|
||||
|
||||
|
||||
@@ -956,3 +957,267 @@ class UtilsTestCase(SupersetTestCase):
|
||||
self.assertListEqual(get_iterable(123), [123])
|
||||
self.assertListEqual(get_iterable([123]), [123])
|
||||
self.assertListEqual(get_iterable("foo"), ["foo"])
|
||||
|
||||
def test_build_extra_filters(self):
|
||||
layout = {
|
||||
"CHART-2ee52f30": {
|
||||
"children": [],
|
||||
"id": "CHART-2ee52f30",
|
||||
"meta": {
|
||||
"chartId": 1020,
|
||||
"height": 38,
|
||||
"sliceName": "Chart 927",
|
||||
"width": 6,
|
||||
},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
"TAB-asWdJzKmTN",
|
||||
"ROW-i_sG4ccXE",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"CHART-36bfc934": {
|
||||
"children": [],
|
||||
"id": "CHART-36bfc934",
|
||||
"meta": {
|
||||
"chartId": 1018,
|
||||
"height": 26,
|
||||
"sliceName": "Region Filter",
|
||||
"width": 2,
|
||||
},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-W62P60D88",
|
||||
"ROW-1e064e3c",
|
||||
"COLUMN-fe3914b8",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"CHART-E_y2cuNHTv": {
|
||||
"children": [],
|
||||
"id": "CHART-E_y2cuNHTv",
|
||||
"meta": {"chartId": 998, "height": 55, "sliceName": "MAP", "width": 6},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-W62P60D88",
|
||||
"ROW-1e064e3c",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"CHART-JNxDOsAfEb": {
|
||||
"children": [],
|
||||
"id": "CHART-JNxDOsAfEb",
|
||||
"meta": {
|
||||
"chartId": 1015,
|
||||
"height": 27,
|
||||
"sliceName": "Population",
|
||||
"width": 4,
|
||||
},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-W62P60D88",
|
||||
"ROW-1e064e3c",
|
||||
"COLUMN-fe3914b8",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"CHART-KoOwqalV80": {
|
||||
"children": [],
|
||||
"id": "CHART-KoOwqalV80",
|
||||
"meta": {
|
||||
"chartId": 927,
|
||||
"height": 20,
|
||||
"sliceName": "Chart 927",
|
||||
"width": 4,
|
||||
},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
"TAB-cHNWcBZC9",
|
||||
"ROW-9b9vrWKPY",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"CHART-YCQAPVK7mQ": {
|
||||
"children": [],
|
||||
"id": "CHART-YCQAPVK7mQ",
|
||||
"meta": {
|
||||
"chartId": 1023,
|
||||
"height": 38,
|
||||
"sliceName": "World's Population",
|
||||
"width": 4,
|
||||
},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"ROW-UfxFT36oV5",
|
||||
],
|
||||
"type": "CHART",
|
||||
},
|
||||
"COLUMN-fe3914b8": {
|
||||
"children": ["CHART-36bfc934", "CHART-JNxDOsAfEb"],
|
||||
"id": "COLUMN-fe3914b8",
|
||||
"meta": {"background": "BACKGROUND_TRANSPARENT", "width": 6},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-W62P60D88",
|
||||
"ROW-1e064e3c",
|
||||
],
|
||||
"type": "COLUMN",
|
||||
},
|
||||
"DASHBOARD_VERSION_KEY": "v2",
|
||||
"GRID_ID": {
|
||||
"children": [],
|
||||
"id": "GRID_ID",
|
||||
"parents": ["ROOT_ID"],
|
||||
"type": "GRID",
|
||||
},
|
||||
"HEADER_ID": {
|
||||
"id": "HEADER_ID",
|
||||
"meta": {"text": "Test warmup 1023"},
|
||||
"type": "HEADER",
|
||||
},
|
||||
"ROOT_ID": {
|
||||
"children": ["TABS-Qq4sdkANSY"],
|
||||
"id": "ROOT_ID",
|
||||
"type": "ROOT",
|
||||
},
|
||||
"ROW-1e064e3c": {
|
||||
"children": ["COLUMN-fe3914b8", "CHART-E_y2cuNHTv"],
|
||||
"id": "ROW-1e064e3c",
|
||||
"meta": {"background": "BACKGROUND_TRANSPARENT"},
|
||||
"parents": ["ROOT_ID", "TABS-Qq4sdkANSY", "TAB-W62P60D88"],
|
||||
"type": "ROW",
|
||||
},
|
||||
"ROW-9b9vrWKPY": {
|
||||
"children": ["CHART-KoOwqalV80"],
|
||||
"id": "ROW-9b9vrWKPY",
|
||||
"meta": {"background": "BACKGROUND_TRANSPARENT"},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
"TAB-cHNWcBZC9",
|
||||
],
|
||||
"type": "ROW",
|
||||
},
|
||||
"ROW-UfxFT36oV5": {
|
||||
"children": ["CHART-YCQAPVK7mQ"],
|
||||
"id": "ROW-UfxFT36oV5",
|
||||
"meta": {"background": "BACKGROUND_TRANSPARENT"},
|
||||
"parents": ["ROOT_ID", "TABS-Qq4sdkANSY", "TAB-VrhTX2WUlO"],
|
||||
"type": "ROW",
|
||||
},
|
||||
"ROW-i_sG4ccXE": {
|
||||
"children": ["CHART-2ee52f30"],
|
||||
"id": "ROW-i_sG4ccXE",
|
||||
"meta": {"background": "BACKGROUND_TRANSPARENT"},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
"TAB-asWdJzKmTN",
|
||||
],
|
||||
"type": "ROW",
|
||||
},
|
||||
"TAB-VrhTX2WUlO": {
|
||||
"children": ["ROW-UfxFT36oV5", "TABS-N1zN4CIZP0"],
|
||||
"id": "TAB-VrhTX2WUlO",
|
||||
"meta": {"text": "New Tab"},
|
||||
"parents": ["ROOT_ID", "TABS-Qq4sdkANSY"],
|
||||
"type": "TAB",
|
||||
},
|
||||
"TAB-W62P60D88": {
|
||||
"children": ["ROW-1e064e3c"],
|
||||
"id": "TAB-W62P60D88",
|
||||
"meta": {"text": "Tab 2"},
|
||||
"parents": ["ROOT_ID", "TABS-Qq4sdkANSY"],
|
||||
"type": "TAB",
|
||||
},
|
||||
"TAB-asWdJzKmTN": {
|
||||
"children": ["ROW-i_sG4ccXE"],
|
||||
"id": "TAB-asWdJzKmTN",
|
||||
"meta": {"text": "nested tab 1"},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
],
|
||||
"type": "TAB",
|
||||
},
|
||||
"TAB-cHNWcBZC9": {
|
||||
"children": ["ROW-9b9vrWKPY"],
|
||||
"id": "TAB-cHNWcBZC9",
|
||||
"meta": {"text": "test2d tab 2"},
|
||||
"parents": [
|
||||
"ROOT_ID",
|
||||
"TABS-Qq4sdkANSY",
|
||||
"TAB-VrhTX2WUlO",
|
||||
"TABS-N1zN4CIZP0",
|
||||
],
|
||||
"type": "TAB",
|
||||
},
|
||||
"TABS-N1zN4CIZP0": {
|
||||
"children": ["TAB-asWdJzKmTN", "TAB-cHNWcBZC9"],
|
||||
"id": "TABS-N1zN4CIZP0",
|
||||
"meta": {},
|
||||
"parents": ["ROOT_ID", "TABS-Qq4sdkANSY", "TAB-VrhTX2WUlO"],
|
||||
"type": "TABS",
|
||||
},
|
||||
"TABS-Qq4sdkANSY": {
|
||||
"children": ["TAB-VrhTX2WUlO", "TAB-W62P60D88"],
|
||||
"id": "TABS-Qq4sdkANSY",
|
||||
"meta": {},
|
||||
"parents": ["ROOT_ID"],
|
||||
"type": "TABS",
|
||||
},
|
||||
}
|
||||
filter_scopes = {
|
||||
"1018": {
|
||||
"region": {"scope": ["TAB-W62P60D88"], "immune": [998]},
|
||||
"country_name": {"scope": ["ROOT_ID"], "immune": [927, 998]},
|
||||
}
|
||||
}
|
||||
default_filters = {
|
||||
"1018": {"region": ["North America"], "country_name": ["United States"]}
|
||||
}
|
||||
|
||||
# immune to all filters
|
||||
slice_id = 998
|
||||
extra_filters = build_extra_filters(
|
||||
layout, filter_scopes, default_filters, slice_id
|
||||
)
|
||||
expected = []
|
||||
self.assertEqual(extra_filters, expected)
|
||||
|
||||
# in scope
|
||||
slice_id = 1015
|
||||
extra_filters = build_extra_filters(
|
||||
layout, filter_scopes, default_filters, slice_id
|
||||
)
|
||||
expected = [
|
||||
{"col": "region", "op": "in", "val": ["North America"]},
|
||||
{"col": "country_name", "op": "in", "val": ["United States"]},
|
||||
]
|
||||
self.assertEqual(extra_filters, expected)
|
||||
|
||||
# not in scope
|
||||
slice_id = 927
|
||||
extra_filters = build_extra_filters(
|
||||
layout, filter_scopes, default_filters, slice_id
|
||||
)
|
||||
expected = []
|
||||
self.assertEqual(extra_filters, expected)
|
||||
|
||||
Reference in New Issue
Block a user