Skip to content

Instantly share code, notes, and snippets.

@cdeil
Created August 10, 2024 17:59
Show Gist options
  • Save cdeil/ed1e5119da6d371411099bd560f538a3 to your computer and use it in GitHub Desktop.
Save cdeil/ed1e5119da6d371411099bd560f538a3 to your computer and use it in GitHub Desktop.
panel $ pixi run -e test-ui pytest --ui panel/tests/ui/widgets/test_icon.py -v --browser chromium -n logical --dist no -n 0
=============================================================================================== test session starts ================================================================================================
platform darwin -- Python 3.12.5, pytest-7.4.4, pluggy-1.5.0 -- /Users/cdeil/code/oss/panel/.pixi/envs/test-ui/bin/python3.12
cachedir: .pytest_cache
rootdir: /Users/cdeil/code/oss/panel
configfile: pyproject.toml
plugins: asyncio-0.23.8, cov-5.0.0, github-actions-annotate-failures-0.2.0, playwright-0.5.0, rerunfailures-14.0, anyio-4.4.0, base-url-2.1.0, xdist-3.6.1
asyncio: mode=Mode.AUTO
collected 17 items
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_click PASSED [ 5%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_width_height PASSED [ 11%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_size PASSED [ 17%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_active_icon PASSED [ 23%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_update_params_dynamically PASSED [ 29%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_svg PASSED [ 35%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_tabler_to_svg PASSED [ 41%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_svg_to_tabler PASSED [ 47%]
panel/tests/ui/widgets/test_icon.py::test_button_icon PASSED [ 52%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_disabled PASSED [ 58%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_on_click_method PASSED [ 64%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_on_click_kwarg PASSED [ 70%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_js_on_click PASSED [ 76%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_tooltip PASSED [ 82%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_name PASSED [ 88%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_name_dynamically PASSED [ 94%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_description_dynamically PASSED [100%]
=============================================================================================== 17 passed in 12.86s ================================================================================================
panel $ pixi run -e test-ui pytest --ui panel/tests/ui -v --browser chromium -n logical --dist no -n 0 --durations 10
=============================================================================================== test session starts ================================================================================================
platform darwin -- Python 3.12.5, pytest-7.4.4, pluggy-1.5.0 -- /Users/cdeil/code/oss/panel/.pixi/envs/test-ui/bin/python3.12
cachedir: .pytest_cache
rootdir: /Users/cdeil/code/oss/panel
configfile: pyproject.toml
plugins: asyncio-0.23.8, cov-5.0.0, github-actions-annotate-failures-0.2.0, playwright-0.5.0, rerunfailures-14.0, anyio-4.4.0, base-url-2.1.0, xdist-3.6.1
asyncio: mode=Mode.AUTO
collected 583 items / 6 deselected / 1 skipped / 577 selected
panel/tests/ui/test_auth.py::test_basic_auth[] SKIPPED (Only supported on Linux) [ 0%]
panel/tests/ui/test_auth.py::test_basic_auth[prefix] SKIPPED (Only supported on Linux) [ 0%]
panel/tests/ui/test_auth.py::test_okta_oauth SKIPPED (PANEL_TEST_AUTH environment variable is required to run this test) [ 0%]
panel/tests/ui/test_auth.py::test_azure_oauth SKIPPED (PANEL_TEST_AUTH environment variable is required to run this test) [ 0%]
panel/tests/ui/test_auth.py::test_auth0_oauth SKIPPED (PANEL_TEST_AUTH environment variable is required to run this test) [ 0%]
panel/tests/ui/test_auth.py::test_basic_auth_logout[None] SKIPPED (Only supported on Linux) [ 1%]
panel/tests/ui/test_auth.py::test_basic_auth_logout[logout_template1] SKIPPED (Only supported on Linux) [ 1%]
panel/tests/ui/test_auth.py::test_authorize_callback_redirect SKIPPED (Only supported on Linux) [ 1%]
panel/tests/ui/test_auth.py::test_global_authorize_callback SKIPPED (Only supported on Linux) [ 1%]
panel/tests/ui/test_custom.py::test_update[JSUpdate] PASSED [ 1%]
panel/tests/ui/test_custom.py::test_update[ReactUpdate] PASSED [ 1%]
panel/tests/ui/test_custom.py::test_update[AnyWidgetUpdate] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_unwatch[JSUnwatch] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_unwatch[AnyWidgetUnwatch] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_gather_input[JSInput] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_gather_input[ReactInput] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_send_event[JSSendEvent] PASSED [ 2%]
panel/tests/ui/test_custom.py::test_send_event[ReactSendEvent] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_child[JSChild] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_child[ReactChild] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_children[JSChildren] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_children[ReactChildren] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_reload[JSComponent-\nexport function render() {\n const h1 = document.createElement('h1')\n h1.innerText = "foo"\n return h1\n}-\nexport function render() {\n const h1 = document.createElement('h1')\n h1.innerText = "bar"\n return h1\n}] PASSED [ 3%]
panel/tests/ui/test_custom.py::test_reload[ReactChildren-\nexport function render() {\n return <h1>foo</h1>\n}-\nexport function render() {\n return <h1>bar</h1>\n}] PASSED [ 4%]
panel/tests/ui/test_custom.py::test_anywidget_custom_event PASSED [ 4%]
panel/tests/ui/test_custom.py::test_after_render_lifecycle_hooks[JSLifecycleAfterRender] PASSED [ 4%]
panel/tests/ui/test_custom.py::test_after_render_lifecycle_hooks[ReactLifecycleAfterRender] PASSED [ 4%]
panel/tests/ui/test_custom.py::test_after_resize_lifecycle_hooks[JSLifecycleAfterResize] PASSED [ 4%]
panel/tests/ui/test_custom.py::test_after_resize_lifecycle_hooks[ReactLifecycleAfterResize] PASSED [ 5%]
panel/tests/ui/test_custom.py::test_remove_lifecycle_hooks[JSLifecycleRemove] PASSED [ 5%]
panel/tests/ui/test_custom.py::test_remove_lifecycle_hooks[ReactLifecycleRemove] PASSED [ 5%]
panel/tests/ui/test_param.py::test_param_defer_load PASSED [ 5%]
panel/tests/ui/test_reactive.py::test_reactive_html_click_js_event PASSED [ 5%]
panel/tests/ui/test_reactive.py::test_reactive_html_param_event PASSED [ 5%]
panel/tests/ui/test_reactive.py::test_reactive_html_set_loading_no_rerender PASSED [ 6%]
panel/tests/ui/test_reactive.py::test_reactive_html_changing_css_classes_rerenders PASSED [ 6%]
panel/tests/ui/test_reactive.py::test_reactive_html_set_background_no_rerender PASSED [ 6%]
panel/tests/ui/test_reactive.py::test_reactive_literal_backtick PASSED [ 6%]
panel/tests/ui/chat/test_chat_interface_ui.py::test_chat_interface_help PASSED [ 6%]
panel/tests/ui/chat/test_chat_interface_ui.py::test_chat_interface_custom_js PASSED [ 6%]
panel/tests/ui/chat/test_chat_interface_ui.py::test_chat_interface_custom_js_string PASSED [ 7%]
panel/tests/ui/chat/test_chat_message.py::test_chat_message_dynamic_footer_objects PASSED [ 7%]
panel/tests/ui/chat/test_chat_message.py::test_chat_message_dynamic_header_objects PASSED [ 7%]
panel/tests/ui/chat/test_chat_reaction_icon.py::test_toggle_icon_click PASSED [ 7%]
panel/tests/ui/chat/test_input_ui.py::test_chat_area_input_enter PASSED [ 7%]
panel/tests/ui/chat/test_input_ui.py::test_chat_area_input_resets_to_row PASSED [ 7%]
panel/tests/ui/chat/test_input_ui.py::test_chat_area_enter_sends PASSED [ 8%]
panel/tests/ui/command/test_serve.py::test_autoreload_app SKIPPED (Only supported on Linux) [ 8%]
panel/tests/ui/io/test_browser.py::test_browser_sync PASSED [ 8%]
panel/tests/ui/io/test_loading.py::test_global_loading_indicator PASSED [ 8%]
panel/tests/ui/io/test_location.py::test_set_url_params_update_document PASSED [ 8%]
panel/tests/ui/io/test_location.py::test_set_hash_update_document PASSED [ 9%]
panel/tests/ui/io/test_location.py::test_set_document_location_update_state PASSED [ 9%]
panel/tests/ui/io/test_notifications.py::test_notifications_no_template PASSED [ 9%]
panel/tests/ui/io/test_notifications.py::test_notifications_with_template PASSED [ 9%]
panel/tests/ui/io/test_notifications.py::test_ready_notification PASSED [ 9%]
panel/tests/ui/io/test_notifications.py::test_disconnect_notification PASSED [ 9%]
panel/tests/ui/io/test_reload.py::test_reload_app_on_touch[/Users/cdeil/code/oss/panel/panel/tests/ui/io/app.py] PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_reload_app_on_touch[/Users/cdeil/code/oss/panel/panel/tests/ui/io/app.md] PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_reload_app_on_touch[/Users/cdeil/code/oss/panel/panel/tests/ui/io/app.ipynb] PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_reload_app_with_error PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_reload_app_with_syntax_error PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_load_app_with_no_content PASSED [ 10%]
panel/tests/ui/io/test_reload.py::test_reload_app_on_local_module_change RERUN [ 11%]
panel/tests/ui/io/test_reload.py::test_reload_app_on_local_module_change PASSED [ 11%]
panel/tests/ui/io/test_resources.py::test_serve_page_on_nested_route PASSED [ 11%]
panel/tests/ui/io/test_resources.py::test_serve_page_with_reactive_html_css_on_nested_route PASSED [ 11%]
panel/tests/ui/io/test_server.py::test_server_reuse_sessions PASSED [ 11%]
panel/tests/ui/io/test_server.py::test_server_reuse_sessions_with_session_key_func PASSED [ 11%]
panel/tests/ui/io/test_state.py::test_on_load PASSED [ 11%]
panel/tests/ui/io/test_state.py::test_server_async_local_state_button_click PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_default PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_card_name PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_active PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_objects PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_toggle PASSED [ 12%]
panel/tests/ui/layout/test_accordion.py::test_accordion_append PASSED [ 13%]
panel/tests/ui/layout/test_accordion.py::test_accordion_extend PASSED [ 13%]
panel/tests/ui/layout/test_accordion.py::test_accordion_clear PASSED [ 13%]
panel/tests/ui/layout/test_accordion.py::test_accordion_insert PASSED [ 13%]
panel/tests/ui/layout/test_accordion.py::test_accordion_pop PASSED [ 13%]
panel/tests/ui/layout/test_accordion.py::test_accordion_remove PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_default PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_collapsed PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_not_collapsible PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_hide_header PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_objects PASSED [ 14%]
panel/tests/ui/layout/test_card.py::test_card_title PASSED [ 15%]
panel/tests/ui/layout/test_card.py::test_card_background PASSED [ 15%]
panel/tests/ui/layout/test_card.py::test_card_header_color_formatting PASSED [ 15%]
panel/tests/ui/layout/test_card.py::test_card_custom_css PASSED [ 15%]
panel/tests/ui/layout/test_card.py::test_card_scrollable PASSED [ 15%]
panel/tests/ui/layout/test_card.py::test_card_widget_not_collapsed PASSED [ 15%]
panel/tests/ui/layout/test_column.py::test_column_scroll PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[both-auto] PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[x-auto] PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[y-auto] PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[both] PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[x] PASSED [ 16%]
panel/tests/ui/layout/test_column.py::test_column_scroll_string[y] PASSED [ 17%]
panel/tests/ui/layout/test_column.py::test_column_auto_scroll_limit PASSED [ 17%]
panel/tests/ui/layout/test_column.py::test_column_auto_scroll_limit_disabled PASSED [ 17%]
panel/tests/ui/layout/test_column.py::test_column_scroll_button_threshold PASSED [ 17%]
panel/tests/ui/layout/test_column.py::test_column_scroll_button_threshold_disabled PASSED [ 17%]
panel/tests/ui/layout/test_column.py::test_column_view_latest PASSED [ 18%]
panel/tests/ui/layout/test_column.py::test_column_scroll_position_init PASSED [ 18%]
panel/tests/ui/layout/test_column.py::test_column_scroll_position_recorded PASSED [ 18%]
panel/tests/ui/layout/test_column.py::test_column_scroll_position_param_updated PASSED [ 18%]
panel/tests/ui/layout/test_feed.py::test_feed_load_entries PASSED [ 18%]
panel/tests/ui/layout/test_feed.py::test_feed_view_latest PASSED [ 18%]
panel/tests/ui/layout/test_feed.py::test_feed_view_scroll_to_latest PASSED [ 19%]
panel/tests/ui/layout/test_feed.py::test_feed_view_scroll_button PASSED [ 19%]
panel/tests/ui/layout/test_feed.py::test_feed_dynamic_objects PASSED [ 19%]
panel/tests/ui/layout/test_floatpanel.py::test_float_panel_closed_status PASSED [ 19%]
panel/tests/ui/layout/test_floatpanel.py::test_float_panel_status_set_on_init PASSED [ 19%]
panel/tests/ui/layout/test_floatpanel.py::test_float_panel_resize PASSED [ 19%]
panel/tests/ui/layout/test_gridbox.py::test_gridbox PASSED [ 20%]
panel/tests/ui/layout/test_gridbox.py::test_gridbox_unequal PASSED [ 20%]
panel/tests/ui/layout/test_gridbox.py::test_gridbox_stretch_width PASSED [ 20%]
panel/tests/ui/layout/test_gridbox.py::test_gridbox_stretch_height PASSED [ 20%]
panel/tests/ui/layout/test_gridbox.py::test_gridbox_stretch_both PASSED [ 20%]
panel/tests/ui/layout/test_gridspec.py::test_gridspec PASSED [ 20%]
panel/tests/ui/layout/test_gridspec.py::test_gridspec_stretch PASSED [ 21%]
panel/tests/ui/layout/test_gridstack.py::test_gridstack PASSED [ 21%]
panel/tests/ui/layout/test_gridstack.py::test_gridstack_stretch PASSED [ 21%]
panel/tests/ui/layout/test_row.py::test_row_scroll PASSED [ 21%]
panel/tests/ui/layout/test_swipe.py::test_swipe_fixed_width PASSED [ 21%]
panel/tests/ui/layout/test_swipe.py::test_swipe_stretch_width PASSED [ 22%]
panel/tests/ui/layout/test_widgetbox.py::test_widgetbox_vertical_scroll PASSED [ 22%]
panel/tests/ui/layout/test_widgetbox.py::test_widgetbox_horizontal_scroll PASSED [ 22%]
panel/tests/ui/pane/test_image.py::test_png_native_size[False] PASSED [ 22%]
panel/tests/ui/pane/test_image.py::test_png_native_size[True] PASSED [ 22%]
panel/tests/ui/pane/test_image.py::test_png_native_size_with_width[False] PASSED [ 22%]
panel/tests/ui/pane/test_image.py::test_png_native_size_with_width[True] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_native_size_with_height[False] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_native_size_with_height[True] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_scaled_fixed_size[False] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_scaled_fixed_size[True] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_scale_width[False-scale_width] PASSED [ 23%]
panel/tests/ui/pane/test_image.py::test_png_scale_width[False-stretch_width] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_width[True-scale_width] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_width[True-stretch_width] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_height[False-scale_height] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_height[False-stretch_height] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_height[True-scale_height] PASSED [ 24%]
panel/tests/ui/pane/test_image.py::test_png_scale_height[True-stretch_height] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_scale_both[False-stretch_both] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_scale_both[False-scale_both] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_scale_both[True-stretch_both] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_scale_both[True-scale_both] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_stretch_width[False] PASSED [ 25%]
panel/tests/ui/pane/test_image.py::test_png_stretch_width[True] PASSED [ 26%]
panel/tests/ui/pane/test_image.py::test_png_stretch_height[False] PASSED [ 26%]
panel/tests/ui/pane/test_image.py::test_png_stretch_height[True] PASSED [ 26%]
panel/tests/ui/pane/test_image.py::test_png_stretch_both[False] PASSED [ 26%]
panel/tests/ui/pane/test_image.py::test_png_stretch_both[True] PASSED [ 26%]
panel/tests/ui/pane/test_image.py::test_svg_native_size[False] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_native_size[True] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_scaled_fixed_size[False] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_scaled_fixed_size[True] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_scale_width[False-scale_width] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_scale_width[False-stretch_width] PASSED [ 27%]
panel/tests/ui/pane/test_image.py::test_svg_scale_width[True-scale_width] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_width[True-stretch_width] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_height[False-scale_height] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_height[False-stretch_height] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_height[True-scale_height] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_height[True-stretch_height] PASSED [ 28%]
panel/tests/ui/pane/test_image.py::test_svg_scale_both[False-stretch_both] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_scale_both[False-scale_both] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_scale_both[True-stretch_both] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_scale_both[True-scale_both] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_width[False] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_width[True] PASSED [ 29%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_height[False] PASSED [ 30%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_height[True] PASSED [ 30%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_both[False] PASSED [ 30%]
panel/tests/ui/pane/test_image.py::test_svg_stretch_both[True] PASSED [ 30%]
panel/tests/ui/pane/test_image.py::test_pdf_embed PASSED [ 30%]
panel/tests/ui/pane/test_image.py::test_pdf_embed_start_page PASSED [ 31%]
panel/tests/ui/pane/test_image.py::test_pdf_no_embed_start_page PASSED [ 31%]
panel/tests/ui/pane/test_ipywidget.py::test_reacton PASSED [ 31%]
panel/tests/ui/pane/test_ipywidget.py::test_anywidget PASSED [ 31%]
panel/tests/ui/pane/test_markup.py::test_update_markdown_pane PASSED [ 31%]
panel/tests/ui/pane/test_markup.py::test_update_markdown_pane_empty PASSED [ 31%]
panel/tests/ui/pane/test_markup.py::test_update_markdown_height PASSED [ 32%]
panel/tests/ui/pane/test_markup.py::test_update_markdown_width PASSED [ 32%]
panel/tests/ui/pane/test_markup.py::test_update_markdown_pane_resizes PASSED [ 32%]
panel/tests/ui/pane/test_markup.py::test_markdown_pane_visible_toggle PASSED [ 32%]
panel/tests/ui/pane/test_markup.py::test_html_model_no_stylesheet PASSED [ 32%]
panel/tests/ui/pane/test_perspective.py::test_perspective_no_console_errors PASSED [ 32%]
panel/tests/ui/pane/test_perspective.py::test_perspective_no_console_errors_with_nested_path PASSED [ 33%]
panel/tests/ui/pane/test_perspective.py::test_perspective_click_event PASSED [ 33%]
panel/tests/ui/pane/test_plotly.py::test_plotly_no_console_errors PASSED [ 33%]
panel/tests/ui/pane/test_plotly.py::test_plotly_2d_plot PASSED [ 33%]
panel/tests/ui/pane/test_plotly.py::test_plotly_3d_plot PASSED [ 33%]
panel/tests/ui/pane/test_plotly.py::test_plotly_hover_data PASSED [ 33%]
panel/tests/ui/pane/test_plotly.py::test_plotly_click_data PASSED [ 34%]
panel/tests/ui/pane/test_plotly.py::test_plotly_select_data PASSED [ 34%]
panel/tests/ui/pane/test_plotly.py::test_plotly_img_plot PASSED [ 34%]
panel/tests/ui/pane/test_textual.py::test_textual_app FAILED [ 34%]
panel/tests/ui/pane/test_vega.py::test_vega_no_console_errors PASSED [ 34%]
panel/tests/ui/pane/test_vega.py::test_altair_select_point PASSED [ 35%]
panel/tests/ui/pane/test_vega.py::test_altair_select_interval PASSED [ 35%]
panel/tests/ui/pane/test_vega.py::test_altair_select_agg PASSED [ 35%]
panel/tests/ui/pane/test_vizzu.py::test_vizzu_no_console_errors PASSED [ 35%]
panel/tests/ui/pane/test_vizzu.py::test_vizzu_click FAILED [ 35%]
panel/tests/ui/template/test_bootstraptemplate.py::test_bootstrap_template_no_console_errors PASSED [ 35%]
panel/tests/ui/template/test_bootstraptemplate.py::test_bootstrap_template_nested_route_no_console_errors PASSED [ 36%]
panel/tests/ui/template/test_bootstraptemplate.py::test_bootstrap_template_raw_css_on_config PASSED [ 36%]
panel/tests/ui/template/test_bootstraptemplate.py::test_bootstrap_template_updates PASSED [ 36%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_no_console_errors PASSED [ 36%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_order PASSED [ 36%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_reset_order PASSED [ 36%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_size PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_reset_size PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_visible PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_reset_visible PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_delete_item PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_undo_delete_item PASSED [ 37%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_drag_item FAILED [ 38%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_undo_drag_item PASSED [ 38%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_resize_item PASSED [ 38%]
panel/tests/ui/template/test_editabletemplate.py::test_editable_template_undo_resize_item PASSED [ 38%]
panel/tests/ui/template/test_fastgridtemplate.py::test_fast_grid_template_no_console_errors PASSED [ 38%]
panel/tests/ui/template/test_fastgridtemplate.py::test_fast_grid_template_updates PASSED [ 38%]
panel/tests/ui/template/test_fastlisttemplate.py::test_fast_list_template_no_console_errors PASSED [ 39%]
panel/tests/ui/template/test_fastlisttemplate.py::test_fast_list_template_updates PASSED [ 39%]
panel/tests/ui/template/test_materialtemplate.py::test_material_template_no_console_errors PASSED [ 39%]
panel/tests/ui/template/test_materialtemplate.py::test_material_template_updates PASSED [ 39%]
panel/tests/ui/template/test_slidestemplate.py::test_slides_template_no_console_errors PASSED [ 39%]
panel/tests/ui/template/test_slidestemplate.py::test_slides_template_updates PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_click PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[Button-str] PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[Button-Tooltip] PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[Button-TooltipIcon] PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[CheckButtonGroup-str] PASSED [ 40%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[CheckButtonGroup-Tooltip] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[CheckButtonGroup-TooltipIcon] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[RadioButtonGroup-str] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[RadioButtonGroup-Tooltip] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip[RadioButtonGroup-TooltipIcon] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip_with_delay[Button] PASSED [ 41%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip_with_delay[CheckButtonGroup] PASSED [ 42%]
panel/tests/ui/widgets/test_button.py::test_button_tooltip_with_delay[RadioButtonGroup] PASSED [ 42%]
panel/tests/ui/widgets/test_debugger.py::test_tabulator_no_console_error PASSED [ 42%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_click PASSED [ 42%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_width_height FAILED [ 42%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_size FAILED [ 42%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_active_icon PASSED [ 43%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_update_params_dynamically PASSED [ 43%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_svg PASSED [ 43%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_tabler_to_svg PASSED [ 43%]
panel/tests/ui/widgets/test_icon.py::test_toggle_icon_svg_to_tabler PASSED [ 43%]
panel/tests/ui/widgets/test_icon.py::test_button_icon PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_disabled PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_on_click_method PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_on_click_kwarg PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_js_on_click PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_tooltip PASSED [ 44%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_name PASSED [ 45%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_name_dynamically PASSED [ 45%]
panel/tests/ui/widgets/test_icon.py::test_button_icon_description_dynamically PASSED [ 45%]
panel/tests/ui/widgets/test_indicators.py::test_plaintext_tooltip[str] PASSED [ 45%]
panel/tests/ui/widgets/test_indicators.py::test_plaintext_tooltip[Tooltip] PASSED [ 45%]
panel/tests/ui/widgets/test_indicators.py::test_tooltip_text_updates PASSED [ 45%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_default PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_value PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_start_end PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_disabled_dates PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_enabled_dates PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_enable_time PASSED [ 46%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_enable_seconds PASSED [ 47%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_military_time PASSED [ 47%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_disable_editing PASSED [ 47%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_visible PASSED [ 47%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_name PASSED [ 47%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_no_value PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_datetimerangepicker_no_value PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_datetimepicker_remove_value PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_datetime_picker_start_end_datetime64 PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_text_area_auto_grow_init PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_text_area_auto_grow PASSED [ 48%]
panel/tests/ui/widgets/test_input.py::test_text_area_auto_grow_max_rows PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_text_area_auto_grow_min_rows PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_text_area_auto_grow_shrink_back_on_new_value PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_textinput_enter PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_filedropper_text_file PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_filedropper_wrong_filetype_error PASSED [ 49%]
panel/tests/ui/widgets/test_input.py::test_filedropper_multiple_file_error PASSED [ 50%]
panel/tests/ui/widgets/test_input.py::test_filedropper_multiple_files PASSED [ 50%]
panel/tests/ui/widgets/test_jsoneditor.py::test_json_editor_no_console_errors PASSED [ 50%]
panel/tests/ui/widgets/test_jsoneditor.py::test_json_editor_edit PASSED [ 50%]
panel/tests/ui/widgets/test_misc.py::test_file_download_updates_when_navigating_between_dynamic_tabs PASSED [ 50%]
panel/tests/ui/widgets/test_player.py::test_init PASSED [ 50%]
panel/tests/ui/widgets/test_player.py::test_show_value PASSED [ 51%]
panel/tests/ui/widgets/test_player.py::test_name PASSED [ 51%]
panel/tests/ui/widgets/test_player.py::test_value_align PASSED [ 51%]
panel/tests/ui/widgets/test_player.py::test_name_and_show_value PASSED [ 51%]
panel/tests/ui/widgets/test_select.py::test_select_with_size PASSED [ 51%]
panel/tests/ui/widgets/test_select.py::test_select_option PASSED [ 51%]
panel/tests/ui/widgets/test_select.py::test_multi_select_double_click PASSED [ 52%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_textinput_end[EditableIntSlider] PASSED [ 52%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_textinput_end[EditableFloatSlider] PASSED [ 52%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_textinput_start[EditableIntSlider] PASSED [ 52%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_textinput_start[EditableFloatSlider] PASSED [ 52%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_button_end[EditableIntSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_button_end[EditableFloatSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_button_start[EditableIntSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editableslider_button_start[EditableFloatSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editablerangeslider_textinput_end[EditableRangeSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editablerangeslider_textinput_start[EditableRangeSlider] PASSED [ 53%]
panel/tests/ui/widgets/test_sliders.py::test_editablerangeslider_button_end[EditableRangeSlider] PASSED [ 54%]
panel/tests/ui/widgets/test_sliders.py::test_editablerangeslider_button_start[EditableRangeSlider] PASSED [ 54%]
panel/tests/ui/widgets/test_sliders.py::test_editablerangeslider_no_overlap PASSED [ 54%]
panel/tests/ui/widgets/test_sliders.py::test_intrangeslider PASSED [ 54%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_no_console_error PASSED [ 54%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_default PASSED [ 54%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_value_changed PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_disabled PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_show_index_disabled PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_titles PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_hidden_columns PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_buttons_display PASSED [ 55%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_buttons_event PASSED [ 56%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_bool PASSED [ 56%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_date PASSED [ 56%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_date_with_nan PASSED [ 56%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_number PASSED [ 56%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_string PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_html_multiple_columns PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_html PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_bokeh_scientific PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_tabulator_str PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_tabulator_dict PASSED [ 57%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_formatters_after_init PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_string PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_string_completions PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_text PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_int PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_number PASSED [ 58%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_checkbox PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_date PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_bokeh_select PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_panel_date PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_panel_datetime PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_tabulator_disable_one PASSED [ 59%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_tabulator_str PASSED [ 60%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_tabulator_dict PASSED [ 60%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_tabulator_list_default PASSED [ 60%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editors_tabulator_multiselect PASSED [ 60%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_column_layouts[fit_data] PASSED [ 60%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_column_layouts[fit_data_fill] PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_column_layouts[fit_data_stretch] PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_column_layouts[fit_data_table] PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_column_layouts[fit_columns] PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_alignment_header_default PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_alignment_text_default PASSED [ 61%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_alignment_header_str PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_alignment_header_dict PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_alignment_text_str PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_frozen_columns PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_frozen_columns_with_positions PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_frozen_rows PASSED [ 62%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patch_no_horizontal_rescroll PASSED [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patch_no_vertical_rescroll XFAIL (See https://github.com/holoviz/panel/issues/3249) [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patch_no_height_resize FAILED [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_no_horizontal_rescroll[local] PASSED [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_no_horizontal_rescroll[remote] FAILED [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_no_horizontal_rescroll[None] ERROR [ 63%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_always_visible PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[default] PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[site] PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[simple] PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[midnight] PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[modern] PASSED [ 64%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[bootstrap] PASSED [ 65%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[bootstrap4] PASSED [ 65%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[materialize] PASSED [ 65%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[bulma] PASSED [ 65%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[semantic-ui] PASSED [ 65%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[fast] PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_theming[bootstrap5] PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_by_default PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_one_at_a_time PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_ctrl PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_shift PASSED [ 66%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_disabled PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_default_selection PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_checkbox_all PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_checkbox_multiple PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_checkbox_single PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_toggle PASSED [ 67%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_selectable_rows PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_row_content PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_row_content_expand_from_python_init PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_row_content_expand_from_python_after PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_groups PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_groupby PASSED [ 68%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_hierarchical XFAIL (See https://github.com/holoviz/panel/issues/3564) [ 69%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_cell_click_event PASSED [ 69%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event PASSED [ 69%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_abort PASSED [ 69%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_empty_to_nan PASSED [ 69%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_pagination[remote] PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_pagination[local] PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_pagination_programmatic_update PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filter_constant_scalar PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filter_constant_list PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filter_constant_tuple_range PASSED [ 70%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filter_param PASSED [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filter_bound_function PASSED [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default[cols0] PASSED [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default[cols1] XFAIL (See https://github.com/holoviz/panel/issues/3655) [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default_index[index0-input[type="search"]] PASSED [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default_index[index1-input[type="number"]] PASSED [ 71%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default_index[index2-input[type="number"]] PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_default_index[index3-input[type="number"]] PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_init_from_editors PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_init_explicitly PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_set_from_client PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filters_multiselect PASSED [ 72%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_download PASSED [ 73%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_streaming_default PASSED [ 73%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_streaming_follow_pagination[remote] PASSED [ 73%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_streaming_follow_pagination[local] PASSED [ 73%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_streaming_no_follow PASSED [ 73%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patching PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patching_no_event PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_styling_init PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patching_and_styling PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_filters_and_styling PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_configuration PASSED [ 74%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editor_datetime_nan XFAIL (See https://github.com/holoviz/panel/issues/3620) [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-index] PASSED [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-int] PASSED [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-float] PASSED [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-str] PASSED [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-date] PASSED [ 75%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[ascending-datetime] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-index] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-int] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-float] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-str] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-date] PASSED [ 76%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init[descending-datetime] PASSED [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_on_init_multiple XFAIL (See https://github.com/holoviz/panel/issues/3657) [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_set_after_init PASSED [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_from_client PASSED [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_pagination_no_page_reset XFAIL (See https://github.com/holoviz/panel/issues/3658) [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_pagination[remote] PASSED [ 77%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorters_pagination[local] PASSED [ 78%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_sorters_not_automatically_applied PASSED [ 78%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_and_header_filters PASSED [ 78%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_and_header_filters_and_streamed_data PASSED [ 78%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_last_row PASSED [ 78%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters PASSED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-True] FAILED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-False] FAILED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-True] FAILED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-False] FAILED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column_pagination[remote] PASSED [ 79%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column_pagination[local] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-header_filter-python_filter-sorter] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-header_filter-python_filter-no_sorter] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-header_filter-no_python_filter-sorter] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-header_filter-no_python_filter-no_sorter] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-no_header_filter-python_filter-sorter] PASSED [ 80%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-no_header_filter-python_filter-no_sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-no_header_filter-no_python_filter-sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[remote-no_header_filter-no_python_filter-no_sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-header_filter-python_filter-sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-header_filter-python_filter-no_sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-header_filter-no_python_filter-sorter] PASSED [ 81%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-header_filter-no_python_filter-no_sorter] PASSED [ 82%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-no_header_filter-python_filter-sorter] PASSED [ 82%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-no_header_filter-python_filter-no_sorter] PASSED [ 82%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-no_header_filter-no_python_filter-sorter] PASSED [ 82%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[local-no_header_filter-no_python_filter-no_sorter] PASSED [ 82%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-header_filter-python_filter-sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-header_filter-python_filter-no_sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-header_filter-no_python_filter-sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-header_filter-no_python_filter-no_sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-no_header_filter-python_filter-sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-no_header_filter-python_filter-no_sorter] PASSED [ 83%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-no_header_filter-no_python_filter-sorter] PASSED [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_integrations[no_pagination-no_header_filter-no_python_filter-no_sorter] PASSED [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-header_filter-no_python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 84%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-no_header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-no_header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-no_header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[remote-no_header_filter-no_python_filter-no_sorter] PASSED [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 85%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 86%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-header_filter-no_python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 86%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-no_header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 86%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-no_header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 86%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-no_header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 86%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[local-no_header_filter-no_python_filter-no_sorter] PASSED [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-header_filter-no_python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-no_header_filter-python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 87%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-no_header_filter-python_filter-no_sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-no_header_filter-no_python_filter-sorter] XFAIL (See https://github.com/holoviz/panel/issues/3664) [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_click_event_selection_integrations[no_pagination-no_header_filter-no_python_filter-no_sorter] PASSED [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_sorters_on_init PASSED [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_header_filter_unchanged PASSED [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_header_filter_changed XFAIL (See https://github.com/holoviz/panel/issues/3670) [ 88%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorter_not_reversed_after_init PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_loading_no_horizontal_rescroll PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_loading_no_vertical_rescroll PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_trigger_value_update PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_header_filter_pagination_updated[remote] PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_selection_header_filter_pagination_updated[local] PASSED [ 89%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm_no_show_index PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm_by_type[string-vals0] PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm_by_type[number-vals1] PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm_by_type[boolean-vals2] PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sort_algorithm_by_type[datetime-vals3] PASSED [ 90%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_python_filter_edit PASSED [ 91%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_sorter_default_number PASSED [ 91%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_update_hidden_columns PASSED [ 91%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_remote_pagination_auto_page_size_grow PASSED [ 91%]
panel/tests/ui/widgets/test_tabulator.py::test_tabulator_remote_pagination_auto_page_size_shrink PASSED [ 91%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_and_filtered_data[local] PASSED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_and_filtered_data[remote] PASSED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_and_filtered_data[None] PASSED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_sorted_and_filtered_data[local] PASSED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_sorted_and_filtered_data[remote] FAILED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_sorted_and_filtered_data[None] PASSED [ 92%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_downward[remote] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_downward[local] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_downward[None] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_upward[remote] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_upward[local] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::test_range_selection_on_sorted_data_upward[None] PASSED [ 93%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_first_page PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_first_page_and_then_another PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_two_items_first_page PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_first_page_goto_second_page PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_both_pages_python PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_both_pages PASSED [ 94%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_one_item_and_then_second_page PASSED [ 95%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_sorting[page1] PASSED [ 95%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_sorting[page2] PASSED [ 95%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_filtering[page1] PASSED [ 95%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_filtering[page2] PASSED [ 95%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_shift_select_page_1 PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_shift_select_page_2 PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_Selection::test_shift_select_both_pages PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_NumberSelection::test_selectable_integer_page_1 PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_NumberSelection::test_selectable_integer_page_2 PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_NumberSelection::test_selectable_integer_both_pages PASSED [ 96%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_full_firstpage PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_one_item_first_page PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_one_item_first_page_goto_second_page PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_one_item_both_pages_python PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_sorting[page1] PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_sorting[page2] PASSED [ 97%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_sorting_all PASSED [ 98%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_filtering[page1] PASSED [ 98%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_filtering[page2] PASSED [ 98%]
panel/tests/ui/widgets/test_tabulator.py::Test_RemotePagination_CheckboxSelection::test_filtering_all PASSED [ 98%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_renders PASSED [ 98%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_toolbar_by_default PASSED [ 98%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_no_toolbar PASSED [ 99%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_init_with_value PASSED [ 99%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_enter_value PASSED [ 99%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_regression_copy_paste PASSED [ 99%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_regression_preserve_formatting_on_view_change PASSED [ 99%]
panel/tests/ui/widgets/test_texteditor.py::test_texteditor_regression_click_toolbar_cursor_stays_in_place PASSED [100%]
====================================================================================================== ERRORS ======================================================================================================
___________________________________________________________________ ERROR at setup of test_tabulator_header_filter_no_horizontal_rescroll[None] ____________________________________________________________________
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_setup() -> Generator[None, None, None]:
> yield from unraisable_exception_runtest_hook()
.pixi/envs/test-ui/lib/python3.12/site-packages/_pytest/unraisableexception.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
with catch_unraisable_exception() as cm:
yield
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored in: <_io.FileIO [closed]>
E
E Traceback (most recent call last):
E File "/Users/cdeil/code/oss/panel/.pixi/envs/test-ui/lib/python3.12/site-packages/pandas/core/internals/blocks.py", line 2804, in extend_blocks
E blocks.append(r)
E ResourceWarning: unclosed file <_io.BufferedRandom name='/var/folders/6v/0_6nt0pj07x9xjhd8qzkyy700000gn/T/tmpmom40sag.txt'>
.pixi/envs/test-ui/lib/python3.12/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning
During handling of the above exception, another exception occurred:
cls = <class '_pytest.runner.CallInfo'>, func = <function call_runtest_hook.<locals>.<lambda> at 0x153a08cc0>, when = 'setup', reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: "Callable[[], TResult]",
when: "Literal['collect', 'setup', 'call', 'teardown']",
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: Optional[TResult] = func()
.pixi/envs/test-ui/lib/python3.12/site-packages/_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.pixi/envs/test-ui/lib/python3.12/site-packages/_pytest/runner.py:262: in <lambda>
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
.pixi/envs/test-ui/lib/python3.12/site-packages/pluggy/_hooks.py:513: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
.pixi/envs/test-ui/lib/python3.12/site-packages/pluggy/_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook_name = 'pytest_runtest_setup'
hook_impl = <HookImpl plugin_name='unraisableexception', plugin=<module '_pytest.unraisableexception' from '/Users/cdeil/code/oss/panel/.pixi/envs/test-ui/lib/python3.12/site-packages/_pytest/unraisableexception.py'>>
e = PytestUnraisableExceptionWarning('Exception ignored in: <_io.FileIO [closed]>\n\nTraceback (most recent call last):\n ...rning: unclosed file <_io.BufferedRandom name=\'/var/folders/6v/0_6nt0pj07x9xjhd8qzkyy700000gn/T/tmpmom40sag.txt\'>\n')
def _warn_teardown_exception(
hook_name: str, hook_impl: HookImpl, e: BaseException
) -> None:
msg = "A plugin raised an exception during an old-style hookwrapper teardown.\n"
msg += f"Plugin: {hook_impl.plugin_name}, Hook: {hook_name}\n"
msg += f"{type(e).__name__}: {e}\n"
msg += "For more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning" # noqa: E501
> warnings.warn(PluggyTeardownRaisedWarning(msg), stacklevel=5)
E pluggy.PluggyTeardownRaisedWarning: A plugin raised an exception during an old-style hookwrapper teardown.
E Plugin: unraisableexception, Hook: pytest_runtest_setup
E PytestUnraisableExceptionWarning: Exception ignored in: <_io.FileIO [closed]>
E
E Traceback (most recent call last):
E File "/Users/cdeil/code/oss/panel/.pixi/envs/test-ui/lib/python3.12/site-packages/pandas/core/internals/blocks.py", line 2804, in extend_blocks
E blocks.append(r)
E ResourceWarning: unclosed file <_io.BufferedRandom name='/var/folders/6v/0_6nt0pj07x9xjhd8qzkyy700000gn/T/tmpmom40sag.txt'>
E
E For more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning
.pixi/envs/test-ui/lib/python3.12/site-packages/pluggy/_callers.py:50: PluggyTeardownRaisedWarning
===================================================================================================== FAILURES =====================================================================================================
_________________________________________________________________________________________________ test_textual_app _________________________________________________________________________________________________
page = <Page url='http://localhost:60618/'>
def test_textual_app(page):
clicks = []
def app():
# Has to be run on the thread
class ButtonApp(App):
def compose(self):
yield Button("Default")
def on_button_pressed(self, event: Button.Pressed) -> None:
clicks.append(event)
app = ButtonApp()
textual = Textual(app)
return textual
serve_component(page, app)
expect(page.locator(".xterm-screen")).to_have_count(1)
> wait_until(lambda: bool(page.mouse.click(50, 50) or clicks), page)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/pane/test_textual.py:43: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:60618
----------------------------------------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------------------------------------
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /Users/cdeil/code/oss/panel/.pixi/envs/test-ui/lib/python3.12/site-packages/ │
│ textual/app.py:2592 in _process_messages │
│ │
│ 2589 │ │ │ self.log(driver=driver) │
│ 2590 │ │ │ │
│ 2591 │ │ │ if not self._exit: │
│ ❱ 2592 │ │ │ │ driver.start_application_mode() │
│ 2593 │ │ │ │ try: │
│ 2594 │ │ │ │ │ with redirect_stdout(self._capture_stdout): │
│ 2595 │ │ │ │ │ │ with redirect_stderr(self._capture_stderr): │
│ │
│ ╭───────────────────────────────── locals ─────────────────────────────────╮ │
│ │ css = '\n App {\n background: $background;\n │ │
│ │ color: $text;\n }\n *:di'+51 │ │
│ │ driver = <panel.pane._textual.PanelDriver object at │ │
│ │ 0x147508620> │ │
│ │ error = TypeError('XTermParser.__init__() takes from 1 to │ │
│ │ 2 positional arguments but 3 were given') │ │
│ │ headless = False │ │
│ │ inline = False │ │
│ │ inline_no_clear = False │ │
│ │ load_event = Load() │ │
│ │ message_hook = None │ │
│ │ mouse = True │ │
│ │ read_from = ( │ │
│ │ │ │ │
│ │ '/Users/cdeil/code/oss/panel/.pixi/envs/test-ui/… │ │
│ │ │ 'App.DEFAULT_CSS' │ │
│ │ ) │ │
│ │ ready_callback = None │ │
│ │ run_process_messages = <function │ │
│ │ App._process_messages.<locals>.run_process_messa… │ │
│ │ at 0x14763cd60> │ │
│ │ scope = 'App' │ │
│ │ self = ButtonApp( │ │
│ │ │ title='ButtonApp', │ │
│ │ │ classes={'-dark-mode'} │ │
│ │ ) │ │
│ │ terminal_size = (0, 0) │ │
│ │ tie_breaker = -1 │ │
│ ╰──────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /Users/cdeil/code/oss/panel/panel/pane/_textual.py:80 in │
│ start_application_mode │
│ │
│ 77 │ │
│ 78 │ def start_application_mode(self): │
│ 79 │ │ self._size_watcher = self._terminal.param.watch(self._resize, [ │
│ ❱ 80 │ │ self._parser = XTermParser(lambda: False, self._debug) │
│ 81 │ │ self._input_watcher = self._terminal.param.watch(self._process_ │
│ 82 │ │
│ 83 │ def stop_application_mode(self): │
│ │
│ ╭──────────────────────────── locals ────────────────────────────╮ │
│ │ self = <panel.pane._textual.PanelDriver object at 0x147508620> │ │
│ ╰────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────╯
TypeError: XTermParser.__init__() takes from 1 to 2 positional arguments but 3
were given
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.25ms
INFO tornado.access:web.py:2348 200 GET / (::1) 103.03ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/terminal/xterm@4.11.0/css/xterm.css?v=1.5.0-b.3 (::1) 5.52ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.88ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.97ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 1.05ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 1.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.29ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 1.37ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/terminal/xterm-addon-web-links@0.4.0/lib/xterm-addon-web-links.js (::1) 60.28ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 62.07ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 63.39ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 66.69ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 3.19ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 3.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 7.92ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/terminal/xterm@4.14.1/lib/xterm.js (::1) 77.68ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 77.60ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 8.83ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 0.72ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.93ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.01ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 2.08ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 0.75ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 1.92ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 1.62ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 3.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 4.72ms
_________________________________________________________________________________________________ test_vizzu_click _________________________________________________________________________________________________
page = <Page url='http://localhost:60673/'>
def test_vizzu_click(page):
vizzu = Vizzu(
DATA, config=CONFIG, duration=400, height=400, sizing_mode='stretch_width', tooltip=True
)
clicks = []
vizzu.on_click(clicks.append)
msgs, _ = serve_component(page, vizzu)
expect(page.locator('canvas')).to_have_count(1)
bbox = page.locator('canvas').bounding_box()
page.mouse.click(bbox['width']//2, bbox['height']-100)
> wait_until(lambda: len(clicks) == 1, page)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/pane/test_vizzu.py:54: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:60673
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.18ms
INFO tornado.access:web.py:2348 200 GET / (::1) 8.34ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.48ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.36ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.58ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.76ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 0.59ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.78ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 1.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 0.52ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 0.59ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 0.76ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 1.28ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 3.79ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.81ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 0.84ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.15ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 1.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 1.72ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 2.04ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.80ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.14ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.85ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.29ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.41ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.53ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 1.59ms
_________________________________________________________________________________________ test_editable_template_drag_item _________________________________________________________________________________________
page = <Page url='http://localhost:60822/'>
def test_editable_template_drag_item(page):
tmpl = EditableTemplate()
md1 = Markdown('1')
md2 = Markdown('2')
tmpl.main[:] = [md1, md2]
serve_component(page, tmpl)
md2_handle = page.locator(".muuri-handle.drag").nth(1)
md2_handle.drag_to(md2_handle, target_position={'x': 0, 'y': -50}, force=True)
> wait_until(lambda: list(tmpl.layout) == [id(md2), id(md1)], page)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/template/test_editabletemplate.py:179: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:60822
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.19ms
INFO tornado.access:web.py:2348 200 GET / (::1) 30.23ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.55ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.30ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.27ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.23ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 0.64ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.62ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/vanillatemplate/vanilla.css?v=1.5.0-b.3 (::1) 0.60ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loadingspinner.css?v=1.5.0-b.3 (::1) 0.46ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/markdown.css?v=1.5.0-b.3 (::1) 0.54ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.63ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.73ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/editabletemplate/editable.css?v=1.5.0-b.3 (::1) 1.34ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 0.66ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 0.93ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.15ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 1.95ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 4.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 1.51ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 1.61ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.74ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 4.80ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.90ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 1.29ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.75ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 1.55ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/interactjs@1.10.19/dist/interact.min.js (::1) 1.94ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/muuri@0.9.5/dist/muuri.min.js (::1) 0.74ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/web-animations-js@2.3.2/web-animations.min.js (::1) 0.92ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.38ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 0.46ms
__________________________________________________________________________________________ test_toggle_icon_width_height ___________________________________________________________________________________________
page = <Page url='http://localhost:61099/'>
def test_toggle_icon_width_height(page):
icon = ToggleIcon(width=100, height=100)
serve_component(page, icon)
# test defaults
assert icon.icon == "heart"
assert not icon.value
icon_element = page.locator(".ti-heart")
> wait_until(lambda: icon_element.bounding_box()["width"] == 100)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/widgets/test_icon.py:54: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:61099
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.25ms
INFO tornado.access:web.py:2348 200 GET / (::1) 8.52ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.46ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.85ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.70ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 1.35ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 1.19ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.32ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 1.44ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 0.81ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 1.48ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.25ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 1.37ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 1.49ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 5.14ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.73ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 1.95ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 2.24ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 2.47ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.50ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.42ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.56ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/icon.css?v=1.5.0-b.3 (::1) 0.69ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 1.26ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 2.27ms
______________________________________________________________________________________________ test_toggle_icon_size _______________________________________________________________________________________________
page = <Page url='http://localhost:61112/'>
def test_toggle_icon_size(page):
icon = ToggleIcon(size="120px")
serve_component(page, icon)
# test defaults
assert icon.icon == "heart"
assert not icon.value
icon_element = page.locator(".ti-heart")
> wait_until(lambda: icon_element.bounding_box()["width"] == 120)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/widgets/test_icon.py:66: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:61112
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.18ms
INFO tornado.access:web.py:2348 200 GET / (::1) 7.95ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.45ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.39ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 0.80ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 1.10ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.54ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 0.67ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.83ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 0.76ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 0.99ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 0.77ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 1.16ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 1.45ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 4.82ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.47ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 0.50ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 0.78ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.71ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 1.30ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.02ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.03ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.38ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/icon.css?v=1.5.0-b.3 (::1) 0.43ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.64ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 0.83ms
______________________________________________________________________________________ test_tabulator_patch_no_height_resize _______________________________________________________________________________________
page = <Page url='http://localhost:62209/'>
def test_tabulator_patch_no_height_resize(page):
header = Column('Text', height=1000)
df = pd.DataFrame(np.random.random((150, 1)), columns=['a'])
widget = Tabulator(df)
app = Column(header, widget)
serve_component(page, app)
page.mouse.wheel(delta_x=0, delta_y=10000)
at_bottom_script = """
isAtBottom => (window.innerHeight + window.scrollY) >= document.body.scrollHeight;
"""
> wait_until(lambda: page.evaluate(at_bottom_script), page)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/widgets/test_tabulator.py:1103: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:62209
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.23ms
INFO tornado.access:web.py:2348 200 GET / (::1) 21.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.52ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.33ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 0.36ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.71ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.90ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 1.53ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 1.96ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 1.59ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 1.00ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 1.50ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 2.21ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 2.64ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 4.12ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 0.49ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.94ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 0.87ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 0.91ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.97ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 1.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.46ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.10ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.18ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 1.01ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/listpanel.css?v=1.5.0-b.3 (::1) 1.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 2.22ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 2.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/markdown.css?v=1.5.0-b.3 (::1) 3.10ms
___________________________________________________________________________ test_tabulator_header_filter_no_horizontal_rescroll[remote] ____________________________________________________________________________
page = <Page url='http://localhost:62228/'>
df_mixed = int float str bool date datetime newcol
idx0 1 3.14 A True 2019-01-01 2019-01-01 ...42 C True 2020-01-10 2020-01-10 13:00:00 on
idx3 4 -2.45 D False 2019-01-10 2020-01-15 13:00:00 on
pagination = 'remote'
@pytest.mark.parametrize(
'pagination', ('local', 'remote', None)
)
def test_tabulator_header_filter_no_horizontal_rescroll(page, df_mixed, pagination):
widths = 100
width = int(((df_mixed.shape[1] + 1) * widths) / 2)
col_name = 'newcol'
df_mixed[col_name] = 'on'
widget = Tabulator(
df_mixed,
width=width,
widths=widths,
header_filters={col_name: {'type': 'input', 'func': 'like'}},
pagination=pagination
)
serve_component(page, widget)
header = page.locator(f'text="{col_name}"')
# Scroll to the right
header.scroll_into_view_if_needed()
bb = header.bounding_box()
header = page.locator('input[type="search"]')
header.click()
header.fill('off')
header.press('Enter')
# Wait to catch a potential rescroll
page.wait_for_timeout(400)
# The table should keep the same scroll position, this fails
> assert page.locator(f'text="{col_name}"').bounding_box() == bb
E AssertionError: assert {'height': 20...: 714, 'y': 9} == {'height': 20...: 264, 'y': 9}
E Omitting 3 identical items, use -vv to show
E Differing items:
E {'x': 714} != {'x': 264}
E Full diff:
E - {'height': 20, 'width': 91, 'x': 264, 'y': 9}
E ? ^^
E + {'height': 20, 'width': 91, 'x': 714, 'y': 9}
E ? ^^
panel/tests/ui/widgets/test_tabulator.py:1145: AssertionError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:62228
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.24ms
INFO tornado.access:web.py:2348 200 GET / (::1) 23.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.52ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.43ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.53ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.91ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 1.12ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 1.66ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.79ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 1.02ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 0.71ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 0.99ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 1.55ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 6.42ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.73ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 2.11ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 0.84ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.94ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.39ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.99ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.69ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.67ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.59ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.36ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.78ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.26ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.33ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 0.36ms
_______________________________________________________________________ test_tabulator_edit_event_and_header_filters_same_column[index-True] _______________________________________________________________________
page = <Page url='http://localhost:63028/'>, show_index = True, index_name = 'index'
@pytest.mark.parametrize('show_index', [True, False])
@pytest.mark.parametrize('index_name', ['index', 'foo'])
def test_tabulator_edit_event_and_header_filters_same_column(page, show_index, index_name):
df = pd.DataFrame({
'values': ['A', 'A', 'B', 'B'],
}, index=['idx0', 'idx1', 'idx2', 'idx3'])
df.index.name = index_name
widget = Tabulator(
df,
header_filters={'values': {'type': 'input', 'func': 'like'}},
show_index=show_index,
)
values = []
widget.on_edit(lambda e: values.append((e.column, e.row, e.old, e.value)))
serve_component(page, widget)
header = page.locator('input[type="search"]')
header.click()
header.fill('B')
header.press('Enter')
# Check the table has the right number of rows
expect(page.locator('.tabulator-row')).to_have_count(2)
# Edit a cell in the filtered column, from B to X
cell = page.locator('text="B"').nth(1)
cell.click()
editable_cell = page.locator('input[type="text"]')
# For some reason there's sometimes an edit event sent with the old
# value as new value. Waiting here helps.
page.wait_for_timeout(200)
> editable_cell.fill("X")
panel/tests/ui/widgets/test_tabulator.py:2679:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/sync_api/_generated.py:15440: in fill
self._sync(
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_locator.py:208: in fill
return await self._frame.fill(self._selector, strict=True, **params)
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_frame.py:527: in fill
await self._channel.send("fill", locals_to_params(locals()))
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:59: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x136cbb5c0>, cb = <function Channel.send.<locals>.<lambda> at 0x154368f40>, is_internal = False
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stack())
parsed_st = _extract_stack_trace_information_from_stack(st, is_internal)
self._api_zone.set(parsed_st)
try:
return await cb()
except Exception as error:
> raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
E playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
E Call log:
E waiting for locator("input[type=\"text\"]")
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:514: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:63028
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.24ms
INFO tornado.access:web.py:2348 200 GET / (::1) 16.71ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.41ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.48ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.74ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.39ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 0.76ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.51ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 0.63ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.72ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 0.95ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 0.58ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 0.99ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.47ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 3.98ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 5.65ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 2.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 0.68ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 1.05ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.34ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.43ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.38ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.66ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.41ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 1.96ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.35ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.70ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 1.78ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 1.96ms
______________________________________________________________________ test_tabulator_edit_event_and_header_filters_same_column[index-False] _______________________________________________________________________
page = <Page url='http://localhost:63042/'>, show_index = False, index_name = 'index'
@pytest.mark.parametrize('show_index', [True, False])
@pytest.mark.parametrize('index_name', ['index', 'foo'])
def test_tabulator_edit_event_and_header_filters_same_column(page, show_index, index_name):
df = pd.DataFrame({
'values': ['A', 'A', 'B', 'B'],
}, index=['idx0', 'idx1', 'idx2', 'idx3'])
df.index.name = index_name
widget = Tabulator(
df,
header_filters={'values': {'type': 'input', 'func': 'like'}},
show_index=show_index,
)
values = []
widget.on_edit(lambda e: values.append((e.column, e.row, e.old, e.value)))
serve_component(page, widget)
header = page.locator('input[type="search"]')
header.click()
header.fill('B')
header.press('Enter')
# Check the table has the right number of rows
expect(page.locator('.tabulator-row')).to_have_count(2)
# Edit a cell in the filtered column, from B to X
cell = page.locator('text="B"').nth(1)
cell.click()
editable_cell = page.locator('input[type="text"]')
# For some reason there's sometimes an edit event sent with the old
# value as new value. Waiting here helps.
page.wait_for_timeout(200)
> editable_cell.fill("X")
panel/tests/ui/widgets/test_tabulator.py:2679:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/sync_api/_generated.py:15440: in fill
self._sync(
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_locator.py:208: in fill
return await self._frame.fill(self._selector, strict=True, **params)
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_frame.py:527: in fill
await self._channel.send("fill", locals_to_params(locals()))
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:59: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x136cbb5c0>, cb = <function Channel.send.<locals>.<lambda> at 0x15424ba60>, is_internal = False
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stack())
parsed_st = _extract_stack_trace_information_from_stack(st, is_internal)
self._api_zone.set(parsed_st)
try:
return await cb()
except Exception as error:
> raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
E playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
E Call log:
E waiting for locator("input[type=\"text\"]")
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:514: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:63042
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.23ms
INFO tornado.access:web.py:2348 200 GET / (::1) 15.54ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.83ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 1.11ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 2.02ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 2.51ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.72ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 1.03ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.55ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 1.90ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 0.79ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 2.76ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 1.42ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 2.27ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 3.30ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 4.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 0.73ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 1.10ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 0.79ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.11ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.40ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 1.87ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 0.84ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 1.14ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.67ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 2.01ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 2.09ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 2.62ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 3.82ms
________________________________________________________________________ test_tabulator_edit_event_and_header_filters_same_column[foo-True] ________________________________________________________________________
page = <Page url='http://localhost:63053/'>, show_index = True, index_name = 'foo'
@pytest.mark.parametrize('show_index', [True, False])
@pytest.mark.parametrize('index_name', ['index', 'foo'])
def test_tabulator_edit_event_and_header_filters_same_column(page, show_index, index_name):
df = pd.DataFrame({
'values': ['A', 'A', 'B', 'B'],
}, index=['idx0', 'idx1', 'idx2', 'idx3'])
df.index.name = index_name
widget = Tabulator(
df,
header_filters={'values': {'type': 'input', 'func': 'like'}},
show_index=show_index,
)
values = []
widget.on_edit(lambda e: values.append((e.column, e.row, e.old, e.value)))
serve_component(page, widget)
header = page.locator('input[type="search"]')
header.click()
header.fill('B')
header.press('Enter')
# Check the table has the right number of rows
expect(page.locator('.tabulator-row')).to_have_count(2)
# Edit a cell in the filtered column, from B to X
cell = page.locator('text="B"').nth(1)
cell.click()
editable_cell = page.locator('input[type="text"]')
# For some reason there's sometimes an edit event sent with the old
# value as new value. Waiting here helps.
page.wait_for_timeout(200)
> editable_cell.fill("X")
panel/tests/ui/widgets/test_tabulator.py:2679:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/sync_api/_generated.py:15440: in fill
self._sync(
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_locator.py:208: in fill
return await self._frame.fill(self._selector, strict=True, **params)
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_frame.py:527: in fill
await self._channel.send("fill", locals_to_params(locals()))
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:59: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x136cbb5c0>, cb = <function Channel.send.<locals>.<lambda> at 0x15420fd80>, is_internal = False
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stack())
parsed_st = _extract_stack_trace_information_from_stack(st, is_internal)
self._api_zone.set(parsed_st)
try:
return await cb()
except Exception as error:
> raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
E playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
E Call log:
E waiting for locator("input[type=\"text\"]")
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:514: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:63053
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.24ms
INFO tornado.access:web.py:2348 200 GET / (::1) 16.91ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.86ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.70ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 1.20ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 1.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 2.16ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 2.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.66ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.03ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 1.38ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 2.57ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 3.31ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 4.07ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 1.51ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 2.27ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 2.60ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 0.97ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 1.04ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 0.65ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.95ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 1.47ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.75ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 2.00ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 2.37ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.34ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 2.19ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.64ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 0.62ms
_______________________________________________________________________ test_tabulator_edit_event_and_header_filters_same_column[foo-False] ________________________________________________________________________
page = <Page url='http://localhost:63068/'>, show_index = False, index_name = 'foo'
@pytest.mark.parametrize('show_index', [True, False])
@pytest.mark.parametrize('index_name', ['index', 'foo'])
def test_tabulator_edit_event_and_header_filters_same_column(page, show_index, index_name):
df = pd.DataFrame({
'values': ['A', 'A', 'B', 'B'],
}, index=['idx0', 'idx1', 'idx2', 'idx3'])
df.index.name = index_name
widget = Tabulator(
df,
header_filters={'values': {'type': 'input', 'func': 'like'}},
show_index=show_index,
)
values = []
widget.on_edit(lambda e: values.append((e.column, e.row, e.old, e.value)))
serve_component(page, widget)
header = page.locator('input[type="search"]')
header.click()
header.fill('B')
header.press('Enter')
# Check the table has the right number of rows
expect(page.locator('.tabulator-row')).to_have_count(2)
# Edit a cell in the filtered column, from B to X
cell = page.locator('text="B"').nth(1)
cell.click()
editable_cell = page.locator('input[type="text"]')
# For some reason there's sometimes an edit event sent with the old
# value as new value. Waiting here helps.
page.wait_for_timeout(200)
> editable_cell.fill("X")
panel/tests/ui/widgets/test_tabulator.py:2679:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/sync_api/_generated.py:15440: in fill
self._sync(
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_locator.py:208: in fill
return await self._frame.fill(self._selector, strict=True, **params)
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_frame.py:527: in fill
await self._channel.send("fill", locals_to_params(locals()))
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:59: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x136cbb5c0>, cb = <function Channel.send.<locals>.<lambda> at 0x154b56ca0>, is_internal = False
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
st: List[inspect.FrameInfo] = getattr(task, "__pw_stack__", inspect.stack())
parsed_st = _extract_stack_trace_information_from_stack(st, is_internal)
self._api_zone.set(parsed_st)
try:
return await cb()
except Exception as error:
> raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
E playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
E Call log:
E waiting for locator("input[type=\"text\"]")
.pixi/envs/test-ui/lib/python3.12/site-packages/playwright/_impl/_connection.py:514: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:63068
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.26ms
INFO tornado.access:web.py:2348 200 GET / (::1) 15.96ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.78ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.59ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 1.92ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 0.80ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 1.16ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 1.54ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 1.96ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.64ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 1.09ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 2.32ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 3.03ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 3.79ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 4.79ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.39ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 1.90ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 0.84ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 1.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 1.48ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 1.82ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 0.66ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 1.23ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 0.72ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 2.35ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 2.69ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.42ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 2.37ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 0.59ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 0.71ms
_______________________________________________________________________ test_selection_indices_on_paginated_sorted_and_filtered_data[remote] _______________________________________________________________________
page = <Page url='http://localhost:63760/'>
df_strings = code descr
0 00 Under the Weather
1 01 Top Drawer
2 02 Happy as a Cla...8 08 Cut The Mustard
9 09 Up In Arms
10 10 Playing For Keeps
11 11 Fit as a Fiddle
pagination = 'remote'
@pytest.mark.parametrize('pagination', ['local', 'remote', None])
def test_selection_indices_on_paginated_sorted_and_filtered_data(page, df_strings, pagination):
tbl = Tabulator(
df_strings,
disabled=True,
pagination=pagination,
page_size=6,
)
descr_filter = TextInput(name='descr', value='cut')
def contains_filter(df, pattern=None):
if not pattern:
return df
return df[df.descr.str.contains(pattern, case=False)]
filter_fn = param.bind(contains_filter, pattern=descr_filter)
tbl.add_filter(filter_fn)
serve_component(page, tbl)
expect(page.locator('.tabulator-table')).to_have_count(1)
page.locator('.tabulator-col-title-holder').nth(3).click()
row = page.locator('.tabulator-row').nth(1)
row.click()
> wait_until(lambda: tbl.selection == [8], page)
E TimeoutError: wait_until timed out in 5000 milliseconds
panel/tests/ui/widgets/test_tabulator.py:3485: TimeoutError
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
Launching server at http://localhost:63760
------------------------------------------------------------------------------------------------ Captured log call -------------------------------------------------------------------------------------------------
INFO tornado.access:web.py:2348 200 GET /liveness (::1) 0.21ms
INFO tornado.access:web.py:2348 200 GET / (::1) 13.44ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/css/tabulator_simple.min.css?v=1.5.0-b.3 (::1) 0.50ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.css?v=1.5.0-b.3 (::1) 0.56ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/tabulator-tables@6.2.1/dist/js/tabulator.min.js (::1) 0.74ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack.min.css?v=1.5.0-b.3 (::1) 1.15ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-extra.min.css?v=1.5.0-b.3 (::1) 0.57ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.css?v=1.5.0-b.3 (::1) 0.79ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/font-awesome/css/all.min.css?v=1.5.0-b.3 (::1) 0.95ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/datatabulator/luxon/build/global/luxon.min.js (::1) 0.48ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/notifications.css?v=1.5.0-b.3 (::1) 0.96ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-gl.min.js?v=70bc1a9856b732e888ed6b2a8e9b6382bf538fee3ec9f1145b8db1778158fd51e478dbe0600650e30d5a0083b12fc43961bc7b2ef3e9f366000199b83b9a1644 (::1) 0.63ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-widgets.min.js?v=8541420c1bb1dbde534df1d9b2be7c8248f61fca353a821ffc4d459b08b79c4b39f0ea1dd6960aa3b734bea988cf822dc6993c786de844db80e4f258dd90727f (::1) 1.69ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh-tables.min.js?v=26281191594de496d010d87b3a56c1679330da29fcf72d3dab91ac4a45479c16b36e82ce4325f4217df4614fad13927fd7f1e1be64cf838e4a18a60852e2be0e (::1) 2.08ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js (::1) 1.05ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js (::1) 1.47ms
INFO tornado.access:web.py:2348 200 GET /static/js/bokeh.min.js?v=276377ed021e1611c60311b355033c865900f31a918aa4565aba37a78700f17b017100a8a618bded4140c6ad247a0b0237d3a02bee9fd722ce67a459479522dc (::1) 6.22ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js (::1) 1.82ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js (::1) 1.87ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js (::1) 2.01ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js (::1) 0.45ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js (::1) 1.07ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js (::1) 1.18ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/notificationarea/notyf@3/notyf.min.js (::1) 1.22ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/panel.min.js?v=a91daab4668e3299f59ed231b5da2e657f5e65d10a1d501ff0a660306b1fdb79 (::1) 1.70ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/reactiveesm/es-module-shims@%5E1.10.0/dist/es-module-shims.min.js (::1) 2.37ms
INFO tornado.access:web.py:2348 101 GET /ws (::1) 0.33ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/css/loading.css?v=1.5.0-b.3 (::1) 0.51ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/default.css?v=1.5.0-b.3 (::1) 1.31ms
INFO tornado.access:web.py:2348 200 GET /static/extensions/panel/bundled/theme/native.css?v=1.5.0-b.3 (::1) 1.98ms
=============================================================================================== slowest 10 durations ===============================================================================================
20.56s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-True]
20.56s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-False]
20.56s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-True]
20.55s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-False]
6.20s call panel/tests/ui/pane/test_textual.py::test_textual_app
5.79s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_editor_datetime_nan
5.46s call panel/tests/ui/io/test_reload.py::test_reload_app_on_local_module_change
5.42s call panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patch_no_height_resize
5.42s call panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_sorted_and_filtered_data[remote]
5.41s call panel/tests/ui/template/test_editabletemplate.py::test_editable_template_drag_item
============================================================================================= short test summary info ==============================================================================================
FAILED panel/tests/ui/pane/test_textual.py::test_textual_app - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/pane/test_vizzu.py::test_vizzu_click - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/template/test_editabletemplate.py::test_editable_template_drag_item - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/widgets/test_icon.py::test_toggle_icon_width_height - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/widgets/test_icon.py::test_toggle_icon_size - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_patch_no_height_resize - TimeoutError: wait_until timed out in 5000 milliseconds
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_no_horizontal_rescroll[remote] - AssertionError: assert {'height': 20...: 714, 'y': 9} == {'height': 20...: 264, 'y': 9}
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-True] - playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[index-False] - playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-True] - playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
FAILED panel/tests/ui/widgets/test_tabulator.py::test_tabulator_edit_event_and_header_filters_same_column[foo-False] - playwright._impl._errors.TimeoutError: Locator.fill: Timeout 20000ms exceeded.
FAILED panel/tests/ui/widgets/test_tabulator.py::test_selection_indices_on_paginated_sorted_and_filtered_data[remote] - TimeoutError: wait_until timed out in 5000 milliseconds
ERROR panel/tests/ui/widgets/test_tabulator.py::test_tabulator_header_filter_no_horizontal_rescroll[None] - pluggy.PluggyTeardownRaisedWarning: A plugin raised an exception during an old-style hookwrapper teardown.
======================================================== 12 failed, 526 passed, 11 skipped, 6 deselected, 28 xfailed, 1 error, 1 rerun in 461.59s (0:07:41) ========================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment