Skip to content

Commit bd40b56

Browse files
committed
adjustments for failing tests
1 parent b1c9953 commit bd40b56

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

dash/_pages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,8 +390,8 @@ def _path_to_page(path_id):
390390

391391

392392
def _page_meta_tags(app, request):
393-
request_url = request.get_path()
394-
start_page, path_variables = _path_to_page(request_url.strip("/"))
393+
request_path = request.get_path()
394+
start_page, path_variables = _path_to_page(request_path.strip("/"))
395395

396396
image = start_page.get("image", "")
397397
if image:

dash/_utils.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ def set_read_only(self, names, msg="Attribute is read-only"):
104104
else:
105105
object.__setattr__(self, "_read_only", new_read_only)
106106

107+
def unset_read_only(self, keys):
108+
if hasattr(self, "_read_only"):
109+
for key in keys:
110+
self._read_only.pop(key, None)
111+
107112
def finalize(self, msg="Object is final: No new keys may be added."):
108113
"""Prevent any new keys being set."""
109114
object.__setattr__(self, "_final", msg)

dash/dash.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,8 @@ def __init__( # pylint: disable=too-many-statements, too-many-branches
565565
f"Conflict between provided backend '{backend}' and server type '{inferred_backend}'."
566566
)
567567
backend_cls = get_backend(inferred_backend)
568+
if name is None:
569+
caller_name = getattr(server, "name", caller_name)
568570
self.backend = backend_cls()
569571
self.server = server
570572
else:
@@ -700,6 +702,9 @@ def __init__( # pylint: disable=too-many-statements, too-many-branches
700702
# tracks internally if a function already handled at least one request.
701703
self._got_first_request = {"pages": False, "setup_server": False}
702704

705+
if self.server is not None:
706+
self.init_app()
707+
703708
self.logger.setLevel(logging.INFO)
704709

705710
if self.__class__.__name__ == "JupyterDash":
@@ -743,6 +748,11 @@ def _setup_hooks(self):
743748

744749
def init_app(self, app: Optional[Any] = None, **kwargs) -> None:
745750
config = self.config
751+
config.unset_read_only([
752+
"url_base_pathname",
753+
"routes_pathname_prefix",
754+
"requests_pathname_prefix",
755+
])
746756
config.update(kwargs)
747757
config.set_read_only(
748758
[

tests/integration/multi_page/test_pages_layout.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from dash import Dash, Input, State, dcc, html, Output
44
from dash.dash import _ID_LOCATION
55
from dash.exceptions import NoLayoutException
6+
from dash.testing.wait import until
67

78

89
def get_app(path1="/", path2="/layout2"):
@@ -57,7 +58,7 @@ def test_pala001_layout(dash_duo, clear_pages_state):
5758
for page in dash.page_registry.values():
5859
dash_duo.find_element("#" + page["id"]).click()
5960
dash_duo.wait_for_text_to_equal("#text_" + page["id"], "text for " + page["id"])
60-
assert dash_duo.driver.title == page["title"], "check that page title updates"
61+
until(lambda: dash_duo.driver.title == page["title"], timeout=3)
6162

6263
# test redirects
6364
dash_duo.wait_for_page(url=f"{dash_duo.server_url}/v2")

0 commit comments

Comments
 (0)