mirror of https://github.com/apache/superset.git
fix(cache): remove unused webserver config & handle trailing slashes (#22849)
This commit is contained in:
parent
4c5176eea8
commit
56069b05f9
|
@ -154,10 +154,6 @@ FILTER_SELECT_ROW_LIMIT = 10000
|
|||
# values may be "Last day", "Last week", "<ISO date> : now", etc.
|
||||
DEFAULT_TIME_FILTER = NO_TIME_RANGE
|
||||
|
||||
SUPERSET_WEBSERVER_PROTOCOL = "http"
|
||||
SUPERSET_WEBSERVER_ADDRESS = "0.0.0.0"
|
||||
SUPERSET_WEBSERVER_PORT = 8088
|
||||
|
||||
# This is an important setting, and should be lower than your
|
||||
# [load balancer / proxy / envoy / kong / ...] timeout settings.
|
||||
# You should also make sure to configure your WSGI server
|
||||
|
|
|
@ -32,6 +32,7 @@ from superset.models.slice import Slice
|
|||
from superset.tags.models import Tag, TaggedObject
|
||||
from superset.utils.date_parser import parse_human_datetime
|
||||
from superset.utils.machine_auth import MachineAuthProvider
|
||||
from superset.utils.urls import get_url_path
|
||||
|
||||
logger = get_task_logger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
@ -218,8 +219,7 @@ def fetch_url(data: str, headers: dict[str, str]) -> dict[str, str]:
|
|||
"""
|
||||
result = {}
|
||||
try:
|
||||
baseurl = app.config["WEBDRIVER_BASEURL"]
|
||||
url = f"{baseurl}api/v1/chart/warm_up_cache"
|
||||
url = get_url_path("Superset.warm_up_cache")
|
||||
logger.info("Fetching %s with payload %s", url, data)
|
||||
req = request.Request(
|
||||
url, data=bytes(data, "utf-8"), headers=headers, method="PUT"
|
||||
|
|
|
@ -37,7 +37,6 @@ SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(
|
|||
DATA_DIR, "unittests.integration_tests.db"
|
||||
)
|
||||
DEBUG = False
|
||||
SUPERSET_WEBSERVER_PORT = 8081
|
||||
SILENCE_FAB = False
|
||||
# Allowing SQLALCHEMY_DATABASE_URI and SQLALCHEMY_EXAMPLES_URI to be defined as an env vars for
|
||||
# continuous integration
|
||||
|
|
|
@ -25,7 +25,6 @@ SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(
|
|||
DATA_DIR, "unittests.integration_tests.db"
|
||||
)
|
||||
DEBUG = True
|
||||
SUPERSET_WEBSERVER_PORT = 8081
|
||||
|
||||
# Allowing SQLALCHEMY_DATABASE_URI to be defined as an env var for
|
||||
# continuous integration
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from tests.integration_tests.test_app import app
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"base_url",
|
||||
[
|
||||
"http://base-url",
|
||||
"http://base-url/",
|
||||
],
|
||||
ids=["Without trailing slash", "With trailing slash"],
|
||||
)
|
||||
@mock.patch("superset.tasks.cache.request.Request")
|
||||
@mock.patch("superset.tasks.cache.request.urlopen")
|
||||
def test_fetch_url(mock_urlopen, mock_request_cls, base_url):
|
||||
from superset.tasks.cache import fetch_url
|
||||
|
||||
mock_request = mock.MagicMock()
|
||||
mock_request_cls.return_value = mock_request
|
||||
|
||||
mock_urlopen.return_value = mock.MagicMock()
|
||||
mock_urlopen.return_value.code = 200
|
||||
|
||||
app.config["WEBDRIVER_BASEURL"] = base_url
|
||||
headers = {"key": "value"}
|
||||
data = "data"
|
||||
data_encoded = b"data"
|
||||
|
||||
result = fetch_url(data, headers)
|
||||
|
||||
assert data == result["success"]
|
||||
mock_request_cls.assert_called_once_with(
|
||||
"http://base-url/superset/warm_up_cache/",
|
||||
data=data_encoded,
|
||||
headers=headers,
|
||||
method="PUT",
|
||||
)
|
||||
# assert the same Request object is used
|
||||
mock_urlopen.assert_called_once_with(mock_request, timeout=mock.ANY)
|
Loading…
Reference in New Issue