3233 passed, 1 failed and 57 skipped
✅ test-results/background-test-results-py3.12/junit_async.xml
26 tests were completed in 74s with 26 passed, 0 failed and 0 skipped.
✅ test-results/background-test-results-py3.12/junit_background.xml
38 tests were completed in 422s with 36 passed, 0 failed and 2 skipped.
✅ test-results/background-test-results-py3.9/junit_async.xml
26 tests were completed in 76s with 26 passed, 0 failed and 0 skipped.
✅ test-results/background-test-results-py3.9/junit_background.xml
38 tests were completed in 423s with 36 passed, 0 failed and 2 skipped.
✅ test-results/dcc-test-results-py3.12-react18.3.1-group1/junit_intg.xml
165 tests were completed in 583s with 164 passed, 0 failed and 1 skipped.
✅ test-results/dcc-test-results-py3.12-react18.3.1-group2/junit_intg.xml
135 tests were completed in 442s with 135 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.12-react18.3.1-group3/junit_intg.xml
33 tests were completed in 98s with 33 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.12-react19.2.0-group1/junit_intg.xml
165 tests were completed in 570s with 164 passed, 0 failed and 1 skipped.
✅ test-results/dcc-test-results-py3.12-react19.2.0-group2/junit_intg.xml
135 tests were completed in 475s with 135 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.12-react19.2.0-group3/junit_intg.xml
33 tests were completed in 102s with 33 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.8-react18.3.1-group1/junit_intg.xml
165 tests were completed in 566s with 164 passed, 0 failed and 1 skipped.
❌ test-results/dcc-test-results-py3.8-react18.3.1-group2/junit_intg.xml
135 tests were completed in 443s with 134 passed, 1 failed and 0 skipped.
| Test suite | Passed | Failed | Skipped | Time |
|---|---|---|---|---|
| pytest | 134✅ | 1❌ | 443s |
❌ pytest
components.dash-core-components.tests.integration.graph.test_graph_varia
✅ test_grva004_graph_prepend_trace[False]
✅ test_grva005_graph_extend_trace[True]
✅ test_grva005_graph_extend_trace[False]
✅ test_grva006_unmounted_graph_resize[True]
✅ test_grva006_unmounted_graph_resize[False]
✅ test_grva007_external_plotlyjs_prevents_lazy[False]
✅ test_grva007_external_plotlyjs_prevents_lazy[True]
✅ test_grva008_shapes_not_lost
✅ test_grva009_originals_maintained_for_responsive_override[True]
✅ test_grva009_originals_maintained_for_responsive_override[False]
✅ test_grva010_external_mathjax_prevents_lazy
✅ test_grva011_without_mathjax[True]
✅ test_grva011_without_mathjax[False]
✅ test_grva012_with_mathjax[True]
✅ test_grva012_with_mathjax[False]
✅ test_grva013_toggle_mathjax[True]
✅ test_grva013_toggle_mathjax[False]
✅ test_grva014_load_mathjax[True]
✅ test_grva014_load_mathjax[False]
components.dash-core-components.tests.integration.input.test_a11y_input
✅ test_a11y001_label_focuses_input[text]
✅ test_a11y001_label_focuses_input[number]
✅ test_a11y002_label_with_htmlFor_can_focus_input[text]
✅ test_a11y002_label_with_htmlFor_can_focus_input[number]
components.dash-core-components.tests.integration.input.test_debounce
✅ test_debounce_text_by_time
✅ test_debounce_number_by_time
components.dash-core-components.tests.integration.input.test_input_and_state
✅ test_state_and_inputs
components.dash-core-components.tests.integration.input.test_input_basics
✅ test_inbs001_all_types
✅ test_inbs002_user_class
✅ test_inbs003_styles_are_scoped
✅ test_inbs004_cursor_position_on_invalid_input[abcdddef-/-2-ab/cdddef-3]
✅ test_inbs004_cursor_position_on_invalid_input[abcdef-$-2-ab$cdef-3]
✅ test_inbs004_cursor_position_on_invalid_input[abcdef-$-3-abc$def-4]
✅ test_inbs004_cursor_position_on_invalid_input[abcdef-A-4-abcdAef-5]
components.dash-core-components.tests.integration.input.test_number_input
✅ test_inni001_invalid_numbers
✅ test_inni002_invalid_numbers_ui
✅ test_inni003_invalid_numbers_range
✅ test_inni004_steppers
✅ test_inni005_stepper_decrement_bug
✅ test_inni006_stepper_floating_point_precision[0.1]
✅ test_inni006_stepper_floating_point_precision[0.01]
✅ test_inni006_stepper_floating_point_precision[0.001]
✅ test_inni006_stepper_floating_point_precision[0.0001]
✅ test_inni007_stepper_very_small_steps[1e-05]
✅ test_inni007_stepper_very_small_steps[1e-06]
✅ test_inni010_valid_numbers
✅ test_inni011_min_max_bug
components.dash-core-components.tests.integration.interval.test_interval
✅ test_intv001_interval
✅ test_intv002_restart
components.dash-core-components.tests.integration.link.test_absolute_path
✅ test_lipa001_path
✅ test_lipa002_path
components.dash-core-components.tests.integration.link.test_link_children
✅ test_lich001_default
✅ test_lich002_children
components.dash-core-components.tests.integration.link.test_link_event
✅ test_link001_event
✅ test_link002_scroll
components.dash-core-components.tests.integration.link.test_title_prop
✅ test_liti001_prop
components.dash-core-components.tests.integration.loading.test_loading_component
✅ test_ldcp001_loading_component_initialization
✅ test_ldcp002_loading_component_action
✅ test_ldcp003_multiple_loading_components
✅ test_ldcp004_nested_loading_components
✅ test_ldcp005_dynamic_loading_component
✅ test_ldcp006_children_identity
✅ test_ldcp007_class_and_style_props
✅ test_ldcp008_graph_in_loading_fits_container_height
✅ test_ldcp009_loading_component_overlay_style
✅ test_ldcp010_loading_component_target_components
✅ test_ldcp011_loading_component_target_components
✅ test_ldcp012_loading_component_custom_spinner
✅ test_ldcp013_loading_component_display_show
✅ test_ldcp014_loading_component_delay_hide
✅ test_ldcp015_loading_component_delay_show
✅ test_ldcp016_loading_component_delay_hide
✅ test_ldcp017_loading_component_target_components_duplicates
✅ test_ldcp018_loading_component_target_components_wildcard
✅ test_ldcp019_loading_component_pattern_matching
components.dash-core-components.tests.integration.location.test_location_callback
✅ test_loca001_callbacks
✅ test_loca002_location_link
✅ test_loca003_location_callback
components.dash-core-components.tests.integration.markdown.test_markdown
✅ test_mkdw001_img
✅ test_mkdw002_dcclink
✅ test_mkdw003_without_mathjax[True]
✅ test_mkdw003_without_mathjax[False]
✅ test_mkdw004_inline_mathjax[True]
✅ test_mkdw004_inline_mathjax[False]
✅ test_mkdw005_block_mathjax[True]
✅ test_mkdw005_block_mathjax[False]
✅ test_mkdw006_toggle_mathjax[True]
✅ test_mkdw006_toggle_mathjax[False]
✅ test_mkdw007_load_mathjax[True]
✅ test_mkdw007_load_mathjax[False]
✅ test_mkdw008_mathjax_visual
✅ test_mkdw009_target_blank_links
✅ test_mkdw010_mathjax_with_html
components.dash-core-components.tests.integration.misc.test_bcdp_auto_id
✅ test_msai001_auto_id_assert
components.dash-core-components.tests.integration.misc.test_dcc_components_as_props
✅ test_mdcap001_dcc_components_as_props
components.dash-core-components.tests.integration.misc.test_inline
✅ test_inline_props
components.dash-core-components.tests.integration.misc.test_markdown_highlight
✅ test_msmh001_no_window_variable
✅ test_msmh002_window_override
✅ test_msmh003_update_md
components.dash-core-components.tests.integration.misc.test_persistence
❌ test_msps001_basic_persistence
self = <conftest.DashCoreComponentsComposite object at 0x7fd3c1da0970>
components.dash-core-components.tests.integration.misc.test_platter
✅ test_mspl001_dcc_components_platter
components.dash-core-components.tests.integration.misc.test_popover_visibility
✅ test_mspv001_popover_visibility_when_app_is_smaller_than_popup
✅ test_mspv002_popover_visibility_when_app_is_scrolled_down
✅ test_mspv003_popover_contained_within_dash_app
✅ test_mspv004_popover_inherits_container_styles
components.dash-core-components.tests.integration.sliders.test_marks_density
✅ test_slsl_extreme_range_marks_density
✅ test_slsl_extreme_range_no_width
components.dash-core-components.tests.integration.sliders.test_sliders
✅ test_slsl001_always_visible_slider
✅ test_slsl002_always_visible_rangeslider
✅ test_slsl003_out_of_range_marks_slider
✅ test_slsl004_out_of_range_marks_rangeslider
✅ test_slsl005_slider_tooltip
✅ test_slsl006_rangeslider_tooltip
✅ test_slsl007_drag_value_slider
✅ test_slsl008_drag_value_rangeslider
✅ test_slsl009_loading_state
✅ test_slsl010_range_loading_state
✅ test_slsl011_horizontal_slider
✅ test_slsl012_vertical_slider
✅ test_slsl013_horizontal_range_slider
✅ test_slsl014_vertical_range_slider
✅ test_slsl015_range_slider_step_none
✅ test_slsl015_range_slider_no_min_max
✅ test_sls016_sliders_format_tooltips
✅ test_slsl017_marks_limit_500
✅ test_slsl018_marks_limit_exceeded
✅ test_slsl019_allow_direct_input_false
✅ test_slsl020_empty_mark_labels_keep_tick_alignment
components.dash-core-components.tests.integration.sliders.test_sliders_keyboard_input
✅ test_slkb001_input_constrained_by_min_max
✅ test_slkb002_range_input_constrained_by_min_max
✅ test_slkb003_input_constrained_by_step
✅ test_slkb004_range_input_constrained_by_step
✅ test_slkb005_input_decimals_precision
components.dash-core-components.tests.integration.sliders.test_sliders_shorthands
✅ test_slsh001_rangeslider_shorthand_props
✅ test_slsh002_sliders_marks_si_unit_format
components.dash-core-components.tests.integration.sliders.test_sliders_step
✅ test_slst001_step_params[test_case0]
✅ test-results/dcc-test-results-py3.8-react18.3.1-group3/junit_intg.xml
33 tests were completed in 133s with 33 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.8-react19.2.0-group1/junit_intg.xml
165 tests were completed in 596s with 164 passed, 0 failed and 1 skipped.
✅ test-results/dcc-test-results-py3.8-react19.2.0-group2/junit_intg.xml
135 tests were completed in 461s with 135 passed, 0 failed and 0 skipped.
✅ test-results/dcc-test-results-py3.8-react19.2.0-group3/junit_intg.xml
33 tests were completed in 96s with 33 passed, 0 failed and 0 skipped.
✅ test-results/html-test-results-py3.12-react18.3.1/junit_html.xml
7 tests were completed in 10s with 7 passed, 0 failed and 0 skipped.
✅ test-results/html-test-results-py3.12-react19.2.0/junit_html.xml
7 tests were completed in 12s with 7 passed, 0 failed and 0 skipped.
✅ test-results/html-test-results-py3.8-react18.3.1/junit_html.xml
7 tests were completed in 9s with 7 passed, 0 failed and 0 skipped.
✅ test-results/html-test-results-py3.8-react19.2.0/junit_html.xml
7 tests were completed in 6s with 7 passed, 0 failed and 0 skipped.
✅ test-results/table-server-results-group1/junit_table.xml
100 tests were completed in 472s with 84 passed, 0 failed and 16 skipped.
✅ test-results/table-server-results-group2/junit_table.xml
197 tests were completed in 479s with 194 passed, 0 failed and 3 skipped.
✅ test-results/table-server-results-group3/junit_table.xml
161 tests were completed in 452s with 151 passed, 0 failed and 10 skipped.
✅ test-results/test-main-results-py3.12-react18.3.1-group1/junit_intg.xml
129 tests were completed in 278s with 127 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.12-react18.3.1-group2/junit_intg.xml
110 tests were completed in 450s with 108 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.12-react18.3.1-group3/junit_intg.xml
97 tests were completed in 252s with 96 passed, 0 failed and 1 skipped.
✅ test-results/test-main-results-py3.12-react19.2.0-group1/junit_intg.xml
129 tests were completed in 273s with 127 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.12-react19.2.0-group2/junit_intg.xml
111 tests were completed in 398s with 109 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.12-react19.2.0-group3/junit_intg.xml
97 tests were completed in 261s with 96 passed, 0 failed and 1 skipped.
✅ test-results/test-main-results-py3.8-react18.3.1-group1/junit_intg.xml
129 tests were completed in 272s with 127 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.8-react18.3.1-group2/junit_intg.xml
110 tests were completed in 422s with 108 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.8-react18.3.1-group3/junit_intg.xml
97 tests were completed in 237s with 96 passed, 0 failed and 1 skipped.
✅ test-results/test-main-results-py3.8-react19.2.0-group1/junit_intg.xml
129 tests were completed in 253s with 127 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.8-react19.2.0-group2/junit_intg.xml
110 tests were completed in 410s with 108 passed, 0 failed and 2 skipped.
✅ test-results/test-main-results-py3.8-react19.2.0-group3/junit_intg.xml
97 tests were completed in 256s with 96 passed, 0 failed and 1 skipped.
Annotations
Check failure on line 0 in test-results/dcc-test-results-py3.8-react18.3.1-group2/junit_intg.xml
github-actions / Test Results Summary
pytest ► components.dash-core-components.tests.integration.misc.test_persistence ► test_msps001_basic_persistence
Failed test found in:
test-results/dcc-test-results-py3.8-react18.3.1-group2/junit_intg.xml
Error:
self = <conftest.DashCoreComponentsComposite object at 0x7fd3c1da0970>
Raw output
self = <conftest.DashCoreComponentsComposite object at 0x7fd3c1da0970>
method = <dash.testing.wait.text_to_equal object at 0x7fd3b10085e0>
timeout = None
msg = <bound method text_to_equal.message of <dash.testing.wait.text_to_equal object at 0x7fd3b10085e0>>
def _wait_for(self, method, timeout, msg):
"""Abstract generic pattern for explicit WebDriverWait."""
try:
_wait = (
self._wd_wait
if timeout is None
else WebDriverWait(self.driver, timeout)
)
logger.debug(
"method, timeout, poll => %s %s %s",
method,
_wait._timeout, # pylint: disable=protected-access
_wait._poll, # pylint: disable=protected-access
)
> return _wait.until(method)
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/dash/testing/browser.py:288:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.support.wait.WebDriverWait (session="c715eb9fb0c00ca99ac20f4081887e01")>
method = <dash.testing.wait.text_to_equal object at 0x7fd3b10085e0>
message = ''
def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value does not evaluate to ``False``.
:param method: callable(WebDriver)
:param message: optional message for :exc:`TimeoutException`
:returns: the result of the last call to `method`
:raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs
"""
screen = None
stacktrace = None
end_time = time.monotonic() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.monotonic() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/selenium/webdriver/support/wait.py:87: TimeoutException
The above exception was the direct cause of the following exception:
dash_dcc = <conftest.DashCoreComponentsComposite object at 0x7fd3c1da0970>
def test_msps001_basic_persistence(dash_dcc):
app = Dash(__name__)
app.layout = html.Div(
[
dcc.Checklist(
id="checklist",
options=[
{"label": "Slow #x1F422", "value": "#x1F422"},
{"label": "Fast #x1F3CE️", "value": "#x1F3CE️"},
{"label": "Faster #x1F680", "value": "#x1F680"},
],
value=["#x1F3CE️"],
persistence=True,
),
dcc.DatePickerRange(
id="datepickerrange",
start_date="2017-08-21",
end_date="2024-04-08",
initial_visible_month="2019-05-01",
persistence=True,
),
dcc.DatePickerSingle(
id="datepickersingle", date="2019-01-01", persistence=True
),
dcc.Dropdown(
id="dropdownsingle",
options=[
{"label": "One 1️⃣", "value": "1️⃣"},
{"label": "Two 2️⃣", "value": "2️⃣"},
{"label": "Three 3️⃣", "value": "3️⃣"},
],
value="2️⃣",
persistence=True,
),
dcc.Dropdown(
id="dropdownmulti",
options=[
{"label": "Four 4️⃣", "value": "4️⃣"},
{"label": "Five 5️⃣", "value": "5️⃣"},
{"label": "Six 6️⃣", "value": "6️⃣"},
],
value=["4️⃣"],
multi=True,
persistence=True,
),
dcc.Input(id="input", value="yes", persistence=True),
dcc.RadioItems(
id="radioitems",
options=[
{"label": "Red", "value": "r"},
{"label": "Green", "value": "g"},
{"label": "Blue", "value": "b"},
],
value="b",
persistence=True,
),
dcc.RangeSlider(
id="rangeslider", min=0, max=10, step=1, value=[3, 7], persistence=True
),
dcc.Slider(id="slider", min=20, max=30, step=1, value=25, persistence=True),
dcc.Tabs(
id="tabs",
children=[
dcc.Tab(label="Eh?", children="Tab A", value="A"),
dcc.Tab(label="Bee", children="Tab B", value="B"),
dcc.Tab(label="Sea", children="Tab C", value="C"),
],
value="A",
persistence=True,
),
dcc.Textarea(id="textarea", value="knock knock", persistence=True),
html.Div(id="settings"),
]
)
@app.callback(
Output("settings", "children"),
[
Input("checklist", "value"),
Input("datepickerrange", "start_date"),
Input("datepickerrange", "end_date"),
Input("datepickersingle", "date"),
Input("dropdownsingle", "value"),
Input("dropdownmulti", "value"),
Input("input", "value"),
Input("radioitems", "value"),
Input("rangeslider", "value"),
Input("slider", "value"),
Input("tabs", "value"),
Input("textarea", "value"),
],
)
def make_output(*args):
return json.dumps(args)
initial_settings = [
["#x1F3CE️"],
"2017-08-21",
"2024-04-08",
"2019-01-01",
"2️⃣",
["4️⃣"],
"yes",
"b",
[3, 7],
25,
"A",
"knock knock",
]
dash_dcc.start_server(app)
dash_dcc.driver.set_window_size(1024, 768)
dash_dcc.wait_for_text_to_equal("#settings", json.dumps(initial_settings))
dash_dcc.find_element('#checklist [data-option-index="2"] input').click() # #x1F680
dash_dcc.select_date_range("datepickerrange", day_range=(4,))
dash_dcc.select_date_range("datepickerrange", day_range=(14,), start_first=False)
dash_dcc.find_element("#datepickersingle").click()
dash_dcc.select_date_single("datepickersingle", day="20")
dash_dcc.find_element("#dropdownsingle").click()
dash_dcc.find_element(".dash-dropdown-content .dash-dropdown-search").send_keys(
"one" + Keys.ENTER
)
dash_dcc.find_element("#dropdownmulti").click()
dash_dcc.find_element(".dash-dropdown-content .dash-dropdown-search").send_keys(
"six"
)
sleep(0.2)
dash_dcc.find_element(".dash-dropdown-content .dash-dropdown-option").click()
dash_dcc.find_element("#input").send_keys(" maybe")
dash_dcc.find_element('#radioitems [data-option-index="0"] input').click() # red
range_slider = dash_dcc.find_element("#rangeslider")
dash_dcc.click_at_coord_fractions(range_slider, 0.5, 0.25) # 5
dash_dcc.click_at_coord_fractions(range_slider, 0.8, 0.25) # 8
slider = dash_dcc.find_element("#slider")
dash_dcc.click_at_coord_fractions(slider, 0.2, 0.25) # 22
dash_dcc.find_element("#tabs .tab:last-child").click() # C
dash_dcc.find_element("#textarea").send_keys(Keys.ENTER + "who's there?")
edited_settings = [
["#x1F3CE️", "#x1F680"],
"2019-05-04",
"2019-05-14",
"2019-01-20",
"1️⃣",
["4️⃣", "6️⃣"],
"yes maybe",
"r",
[5, 8],
22,
"C",
"knock knock\nwho's there?",
]
> dash_dcc.wait_for_text_to_equal("#settings", json.dumps(edited_settings))
tests/integration/misc/test_persistence.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/dash/testing/browser.py:367: in wait_for_text_to_equal
return self._wait_for(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <conftest.DashCoreComponentsComposite object at 0x7fd3c1da0970>
method = <dash.testing.wait.text_to_equal object at 0x7fd3b10085e0>
timeout = None
msg = <bound method text_to_equal.message of <dash.testing.wait.text_to_equal object at 0x7fd3b10085e0>>
def _wait_for(self, method, timeout, msg):
"""Abstract generic pattern for explicit WebDriverWait."""
try:
_wait = (
self._wd_wait
if timeout is None
else WebDriverWait(self.driver, timeout)
)
logger.debug(
"method, timeout, poll => %s %s %s",
method,
_wait._timeout, # pylint: disable=protected-access
_wait._poll, # pylint: disable=protected-access
)
return _wait.until(method)
except Exception as err:
if callable(msg):
message = msg(self.driver)
else:
message = msg
> raise TimeoutException(str(message)) from err
E selenium.common.exceptions.TimeoutException: Message: text -> [["\ud83c\udfce\ufe0f", "\ud83d\ude80"], "2019-05-04", "2019-05-14", "2019-01-20", "1\ufe0f\u20e3", ["4\ufe0f\u20e3", "6\ufe0f\u20e3"], "yes maybe", "r", [5, 8], 22, "C", "knock knock\nwho's there?"] not found within 10s, found: [["\ud83c\udfce\ufe0f", "\ud83d\ude80"], "2019-05-04", "2019-05-14", "2019-01-20", null, ["4\ufe0f\u20e3", "6\ufe0f\u20e3"], "yes maybe", "r", [5, 8], 22, "C", "knock knock\nwho's there?"]
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/dash/testing/browser.py:294: TimeoutException