MCPcopy
hub / github.com/plotly/dash / test_pala001_layout

Function test_pala001_layout

tests/integration/multi_page/test_pages_layout.py:53–97  ·  view source on GitHub ↗
(dash_duo, clear_pages_state)

Source from the content-addressed store, hash-verified

51
52
53def test_pala001_layout(dash_duo, clear_pages_state):
54 app = get_app()
55 dash_duo.start_server(app)
56
57 # test layout and title for each page in `page_registry` with link navigation
58 for page in dash.page_registry.values():
59 dash_duo.find_element("#" + page["id"]).click()
60 dash_duo.wait_for_text_to_equal("#text_" + page["id"], "text for " + page["id"])
61 until(lambda: dash_duo.driver.title == page["title"], timeout=3)
62
63 # test redirects
64 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/v2")
65 dash_duo.wait_for_text_to_equal("#text_redirect", "text for redirect")
66 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/old-home-page")
67 dash_duo.wait_for_text_to_equal("#text_redirect", "text for redirect")
68 assert dash_duo.driver.current_url == f"{dash_duo.server_url}/redirect"
69
70 # test redirect with button and user defined dcc.Location
71 # note: dcc.Location must be defined in app.py
72 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/page1")
73 dash_duo.find_element("#btn1").click()
74 dash_duo.wait_for_text_to_equal("#text_page2", "text for page2")
75
76 # test query strings
77 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/query-string?velocity=10")
78 assert (
79 dash_duo.find_element("#velocity").get_attribute("value") == "10"
80 ), "query string passed to layout"
81
82 # test path variables
83 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/a/none/b/none")
84 dash_duo.wait_for_text_to_equal("#path_vars", "variables from pathname:none none")
85
86 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/a/var1/b/var2")
87 dash_duo.wait_for_text_to_equal("#path_vars", "variables from pathname:var1 var2")
88
89 # test page not found
90 dash_duo.wait_for_page(url=f"{dash_duo.server_url}/find_me")
91 dash_duo.wait_for_text_to_equal("#text_not_found_404", "text for not_found_404")
92
93 # test `validation_layout` exists when suppress_callback_exceptions=False`
94 assert app.validation_layout is not None
95
96 assert dash_duo.get_logs() == [], "browser console should contain no error"
97 # dash_duo.percy_snapshot("pala001_layout")
98
99
100def check_metas(dash_duo, metas):

Callers

nothing calls this directly

Calls 8

untilFunction · 0.90
find_elementMethod · 0.80
wait_for_pageMethod · 0.80
get_logsMethod · 0.80
get_appFunction · 0.70
start_serverMethod · 0.45
clickMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…