py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV) py$(PYV): commands[0]> python -m pytest --cov-report term-missing --cov=rich tests/ ============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python cachedir: $(@D)/.tox/py$(PYV)/.pytest_cache rootdir: $(@D)/tests configfile: pytest.ini collecting ... collected 874 items tests/test_align.py::test_bad_align_legal PASSED tests/test_align.py::test_repr PASSED tests/test_align.py::test_align_left PASSED tests/test_align.py::test_align_center PASSED tests/test_align.py::test_align_right PASSED tests/test_align.py::test_align_top PASSED tests/test_align.py::test_align_middle PASSED tests/test_align.py::test_align_bottom PASSED tests/test_align.py::test_align_center_middle PASSED tests/test_align.py::test_align_fit PASSED tests/test_align.py::test_align_right_style PASSED tests/test_align.py::test_measure PASSED tests/test_align.py::test_align_no_pad PASSED tests/test_align.py::test_align_width PASSED tests/test_align.py::test_shortcuts PASSED tests/test_align.py::test_vertical_center PASSED tests/test_ansi.py::test_decode PASSED tests/test_ansi.py::test_decode_example PASSED tests/test_ansi.py::test_decode_issue_2688[\x1b[31mFound 4 errors in 2 files (checked 18 source files)\x1b(B\x1b[m\n-Found 4 errors in 2 files (checked 18 source files)] PASSED tests/test_ansi.py::test_decode_issue_2688[Hallo-Hallo] PASSED tests/test_ansi.py::test_decode_issue_2688[\x1b(BHallo-Hallo] PASSED tests/test_ansi.py::test_decode_issue_2688[\x1b(JHallo-Hallo] PASSED tests/test_ansi.py::test_decode_issue_2688[\x1b(BHal\x1b(Jlo-Hallo] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[0] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[1] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[2] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[3] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[4] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[5] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[6] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[7] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[8] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[9] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[:] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[;] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[<] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[=] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[>] PASSED tests/test_ansi.py::test_strip_private_escape_sequences[?] PASSED tests/test_bar.py::test_init PASSED tests/test_bar.py::test_update PASSED tests/test_bar.py::test_render PASSED tests/test_bar.py::test_measure PASSED tests/test_bar.py::test_zero_total PASSED tests/test_bar.py::test_pulse PASSED tests/test_bar.py::test_get_pulse_segments PASSED tests/test_block_bar.py::test_repr PASSED tests/test_block_bar.py::test_render PASSED tests/test_block_bar.py::test_measure PASSED tests/test_block_bar.py::test_zero_total PASSED tests/test_box.py::test_str PASSED tests/test_box.py::test_repr PASSED tests/test_box.py::test_get_top PASSED tests/test_box.py::test_get_row PASSED tests/test_box.py::test_get_bottom PASSED tests/test_box.py::test_box_substitute_for_same_box PASSED tests/test_box.py::test_box_substitute_for_different_box_legacy_windows PASSED tests/test_box.py::test_box_substitute_for_different_box_ascii_encoding PASSED tests/test_card.py::test_card_render PASSED tests/test_cells.py::test_cell_len_long_string PASSED tests/test_cells.py::test_cell_len_short_string PASSED tests/test_cells.py::test_set_cell_size PASSED tests/test_cells.py::test_set_cell_size_infinite PASSED tests/test_cells.py::test_chop_cells PASSED tests/test_cells.py::test_chop_cells_double_width_boundary PASSED tests/test_cells.py::test_chop_cells_mixed_width PASSED tests/test_cells.py::test_is_single_cell_widths PASSED tests/test_color.py::test_str PASSED tests/test_color.py::test_repr PASSED tests/test_color.py::test_color_system_repr PASSED tests/test_color.py::test_rich PASSED tests/test_color.py::test_system PASSED tests/test_color.py::test_windows PASSED tests/test_color.py::test_truecolor PASSED tests/test_color.py::test_parse_success PASSED tests/test_color.py::test_from_triplet PASSED tests/test_color.py::test_from_rgb PASSED tests/test_color.py::test_from_ansi PASSED tests/test_color.py::test_default PASSED tests/test_color.py::test_parse_error PASSED tests/test_color.py::test_get_ansi_codes PASSED tests/test_color.py::test_downgrade PASSED tests/test_color.py::test_parse_rgb_hex PASSED tests/test_color.py::test_blend_rgb PASSED tests/test_color_triplet.py::test_hex PASSED tests/test_color_triplet.py::test_rgb PASSED tests/test_color_triplet.py::test_normalized PASSED tests/test_columns.py::test_render PASSED tests/test_columns_align.py::test_align PASSED tests/test_console.py::test_dumb_terminal PASSED tests/test_console.py::test_soft_wrap PASSED tests/test_console.py::test_16color_terminal PASSED tests/test_console.py::test_truecolor_terminal PASSED tests/test_console.py::test_kitty_terminal PASSED tests/test_console.py::test_console_options_update PASSED tests/test_console.py::test_console_options_update_height PASSED tests/test_console.py::test_init PASSED tests/test_console.py::test_size PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[True-no_descriptor_size0-ValueError-ValueError-ValueError-expected_size0] PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[False-no_descriptor_size1-ValueError-ValueError-ValueError-expected_size1] PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[False-ValueError-stdin_size2-ValueError-ValueError-expected_size2] PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[False-ValueError-ValueError-stdout_size3-ValueError-expected_size3] PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[False-ValueError-ValueError-ValueError-stderr_size4-expected_size4] PASSED tests/test_console.py::test_size_can_fall_back_to_std_descriptors[False-ValueError-ValueError-ValueError-ValueError-expected_size5] PASSED tests/test_console.py::test_repr PASSED tests/test_console.py::test_print PASSED tests/test_console.py::test_print_multiple PASSED tests/test_console.py::test_print_text PASSED tests/test_console.py::test_print_text_multiple PASSED tests/test_console.py::test_print_json PASSED tests/test_console.py::test_print_json_error PASSED tests/test_console.py::test_print_json_data PASSED tests/test_console.py::test_print_json_ensure_ascii PASSED tests/test_console.py::test_print_json_with_default_ensure_ascii PASSED tests/test_console.py::test_print_json_indent_none PASSED tests/test_console.py::test_console_null_file PASSED tests/test_console.py::test_log PASSED tests/test_console.py::test_log_milliseconds PASSED tests/test_console.py::test_print_empty PASSED tests/test_console.py::test_markup_highlight PASSED tests/test_console.py::test_print_style PASSED tests/test_console.py::test_show_cursor PASSED tests/test_console.py::test_clear PASSED tests/test_console.py::test_clear_no_terminal PASSED tests/test_console.py::test_get_style PASSED tests/test_console.py::test_get_style_default PASSED tests/test_console.py::test_get_style_error PASSED tests/test_console.py::test_render_error PASSED tests/test_console.py::test_control PASSED tests/test_console.py::test_capture PASSED tests/test_console.py::test_input PASSED tests/test_console.py::test_input_password PASSED tests/test_console.py::test_status PASSED tests/test_console.py::test_justify_none PASSED tests/test_console.py::test_justify_left PASSED tests/test_console.py::test_justify_center PASSED tests/test_console.py::test_justify_right PASSED tests/test_console.py::test_justify_renderable_none PASSED tests/test_console.py::test_justify_renderable_left PASSED tests/test_console.py::test_justify_renderable_center PASSED tests/test_console.py::test_justify_renderable_right PASSED tests/test_console.py::test_render_broken_renderable PASSED tests/test_console.py::test_export_text PASSED tests/test_console.py::test_export_html PASSED tests/test_console.py::test_export_html_inline PASSED tests/test_console.py::test_export_svg PASSED tests/test_console.py::test_export_svg_specified_unique_id PASSED tests/test_console.py::test_save_svg PASSED tests/test_console.py::test_save_text PASSED tests/test_console.py::test_save_html PASSED tests/test_console.py::test_no_wrap PASSED tests/test_console.py::test_unicode_error PASSED tests/test_console.py::test_bell PASSED tests/test_console.py::test_pager PASSED tests/test_console.py::test_out PASSED tests/test_console.py::test_render_group PASSED tests/test_console.py::test_render_group_fit PASSED tests/test_console.py::test_get_time PASSED tests/test_console.py::test_console_style PASSED tests/test_console.py::test_no_color PASSED tests/test_console.py::test_quiet PASSED tests/test_console.py::test_no_nested_live PASSED tests/test_console.py::test_screen PASSED tests/test_console.py::test_screen_update PASSED tests/test_console.py::test_height PASSED tests/test_console.py::test_columns_env PASSED tests/test_console.py::test_lines_env PASSED tests/test_console.py::test_screen_update_class PASSED tests/test_console.py::test_is_alt_screen PASSED tests/test_console.py::test_set_console_title PASSED tests/test_console.py::test_update_screen PASSED tests/test_console.py::test_update_screen_lines PASSED tests/test_console.py::test_update_options_markup PASSED tests/test_console.py::test_print_width_zero PASSED tests/test_console.py::test_size_properties PASSED tests/test_console.py::test_print_newline_start PASSED tests/test_console.py::test_is_terminal_broken_file PASSED tests/test_console.py::test_detect_color_system PASSED tests/test_console.py::test_reset_height PASSED tests/test_console.py::test_render_lines_height_minus_vertical_pad_is_negative PASSED tests/test_console.py::test_recording_no_stdout_and_no_stderr_files PASSED tests/test_console.py::test_capturing_no_stdout_and_no_stderr_files PASSED tests/test_console.py::test_force_color PASSED tests/test_console.py::test_force_color_jupyter PASSED tests/test_console.py::test_reenable_highlighting PASSED tests/test_console.py::test_brokenpipeerror PASSED tests/test_console.py::test_capture_and_record PASSED tests/test_constrain.py::test_width_of_none PASSED tests/test_containers.py::test_renderables_measure PASSED tests/test_containers.py::test_renderables_empty PASSED tests/test_containers.py::test_lines_rich_console PASSED tests/test_containers.py::test_lines_justify PASSED tests/test_control.py::test_control PASSED tests/test_control.py::test_strip_control_codes PASSED tests/test_control.py::test_escape_control_codes PASSED tests/test_control.py::test_control_move_to PASSED tests/test_control.py::test_control_move PASSED tests/test_control.py::test_move_to_column PASSED tests/test_control.py::test_title PASSED tests/test_emoji.py::test_no_emoji PASSED tests/test_emoji.py::test_str_repr PASSED tests/test_emoji.py::test_replace PASSED tests/test_emoji.py::test_render PASSED tests/test_emoji.py::test_variant PASSED tests/test_emoji.py::test_variant_non_default PASSED tests/test_file_proxy.py::test_empty_bytes PASSED tests/test_file_proxy.py::test_flush PASSED tests/test_file_proxy.py::test_new_lines PASSED tests/test_filesize.py::test_traditional PASSED tests/test_filesize.py::test_pick_unit_and_suffix PASSED tests/test_getfileno.py::test_get_fileno PASSED tests/test_getfileno.py::test_get_fileno_missing PASSED tests/test_getfileno.py::test_get_fileno_broken PASSED tests/test_highlighter.py::test_wrong_type PASSED tests/test_highlighter.py::test_highlight_regex[-spans0] PASSED tests/test_highlighter.py::test_highlight_regex[ -spans1] PASSED tests/test_highlighter.py::test_highlight_regex[-spans2] PASSED tests/test_highlighter.py::test_highlight_regex[-spans3] PASSED tests/test_highlighter.py::test_highlight_regex[>-spans4] PASSED tests/test_highlighter.py::test_highlight_regex[False True None-spans5] PASSED tests/test_highlighter.py::test_highlight_regex[foo=bar-spans6] PASSED tests/test_highlighter.py::test_highlight_regex[foo="bar"-spans7] PASSED tests/test_highlighter.py::test_highlight_regex[-spans8] PASSED tests/test_highlighter.py::test_highlight_regex[( )-spans9] PASSED tests/test_highlighter.py::test_highlight_regex[[ ]-spans10] PASSED tests/test_highlighter.py::test_highlight_regex[{ }-spans11] PASSED tests/test_highlighter.py::test_highlight_regex[ 1 -spans12] PASSED tests/test_highlighter.py::test_highlight_regex[ 1.2 -spans13] PASSED tests/test_highlighter.py::test_highlight_regex[ 0xff -spans14] PASSED tests/test_highlighter.py::test_highlight_regex[ 1e10 -spans15] PASSED tests/test_highlighter.py::test_highlight_regex[ 1j -spans16] PASSED tests/test_highlighter.py::test_highlight_regex[ 3.14j -spans17] PASSED tests/test_highlighter.py::test_highlight_regex[ (3.14+2.06j) -spans18] PASSED tests/test_highlighter.py::test_highlight_regex[ (3+2j) -spans19] PASSED tests/test_highlighter.py::test_highlight_regex[ (123456.4321-1234.5678j) -spans20] PASSED tests/test_highlighter.py::test_highlight_regex[ (-123123-2.1312342342423422e+25j) -spans21] PASSED tests/test_highlighter.py::test_highlight_regex[ /foo -spans22] PASSED tests/test_highlighter.py::test_highlight_regex[ /foo/bar.html -spans23] PASSED tests/test_highlighter.py::test_highlight_regex[01-23-45-67-89-AB-spans24] PASSED tests/test_highlighter.py::test_highlight_regex[01-23-45-FF-FE-67-89-AB-spans25] PASSED tests/test_highlighter.py::test_highlight_regex[01:23:45:67:89:AB-spans26] PASSED tests/test_highlighter.py::test_highlight_regex[01:23:45:FF:FE:67:89:AB-spans27] PASSED tests/test_highlighter.py::test_highlight_regex[0123.4567.89AB-spans28] PASSED tests/test_highlighter.py::test_highlight_regex[0123.45FF.FE67.89AB-spans29] PASSED tests/test_highlighter.py::test_highlight_regex[ed-ed-ed-ed-ed-ed-spans30] PASSED tests/test_highlighter.py::test_highlight_regex[ED-ED-ED-ED-ED-ED-spans31] PASSED tests/test_highlighter.py::test_highlight_regex[Ed-Ed-Ed-Ed-Ed-Ed-spans32] PASSED tests/test_highlighter.py::test_highlight_regex[0-00-1-01-2-02-spans33] PASSED tests/test_highlighter.py::test_highlight_regex[ https://example.org -spans34] PASSED tests/test_highlighter.py::test_highlight_regex[ http://example.org -spans35] PASSED tests/test_highlighter.py::test_highlight_regex[ http://example.org/index.html -spans36] PASSED tests/test_highlighter.py::test_highlight_regex[ http://example.org/index.html#anchor -spans37] PASSED tests/test_highlighter.py::test_highlight_regex[https://www.youtube.com/@LinusTechTips-spans38] PASSED tests/test_highlighter.py::test_highlight_regex[ http://example.org/index.html?param1=value1 -spans39] PASSED tests/test_highlighter.py::test_highlight_regex[ http://example.org/~folder -spans40] PASSED tests/test_highlighter.py::test_highlight_regex[No place like 127.0.0.1-spans41] PASSED tests/test_highlighter.py::test_highlight_regex[''-spans42] PASSED tests/test_highlighter.py::test_highlight_regex['hello'-spans43] PASSED tests/test_highlighter.py::test_highlight_regex['''hello'''-spans44] PASSED tests/test_highlighter.py::test_highlight_regex[""-spans45] PASSED tests/test_highlighter.py::test_highlight_regex["hello"-spans46] PASSED tests/test_highlighter.py::test_highlight_regex["""hello"""-spans47] PASSED tests/test_highlighter.py::test_highlight_regex[\\'foo'-spans48] PASSED tests/test_highlighter.py::test_highlight_regex[it's no 'string'-spans49] PASSED tests/test_highlighter.py::test_highlight_regex[78351748-9b32-4e08-ad3e-7e9ff124d541-spans50] PASSED tests/test_highlighter.py::test_highlight_json_with_indent PASSED tests/test_highlighter.py::test_highlight_json_string_only PASSED tests/test_highlighter.py::test_highlight_json_empty_string_only PASSED tests/test_highlighter.py::test_highlight_json_no_indent PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-spans0] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30-spans1] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[20080830-spans2] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-243-spans3] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008243-spans4] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-W35-spans5] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008W35-spans6] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-W35-6-spans7] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008W356-spans8] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[17:21-spans9] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[1721-spans10] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[172159-spans11] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[Z-spans12] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[+07-spans13] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[+07:00-spans14] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[17:21:59+07:00-spans15] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[172159+0700-spans16] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[172159+07-spans17] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30 17:21:59-spans18] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[20080830 172159-spans19] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30-spans20] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30+07:00-spans21] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[01:45:36-spans22] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[01:45:36.123+07:00-spans23] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[01:45:36.123+07:00-spans24] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30T01:45:36-spans25] PASSED tests/test_highlighter.py::test_highlight_iso8601_regex[2008-08-30T01:45:36.123Z-spans26] PASSED tests/test_inspect.py::test_render PASSED tests/test_inspect.py::test_inspect_text PASSED tests/test_inspect.py::test_inspect_empty_dict PASSED tests/test_inspect.py::test_inspect_builtin_function_except_python311 PASSED tests/test_inspect.py::test_inspect_builtin_function_only_python311 SKIPPED tests/test_inspect.py::test_inspect_coroutine PASSED tests/test_inspect.py::test_inspect_integer PASSED tests/test_inspect.py::test_inspect_integer_with_value PASSED tests/test_inspect.py::test_inspect_integer_with_methods_python38_and_python39 PASSED tests/test_inspect.py::test_inspect_integer_with_methods_python310only SKIPPED tests/test_inspect.py::test_inspect_integer_with_methods_python311 SKIPPED tests/test_inspect.py::test_broken_call_attr PASSED tests/test_inspect.py::test_inspect_swig_edge_case PASSED tests/test_inspect.py::test_inspect_module_with_class PASSED tests/test_inspect.py::test_can_handle_special_characters_in_docstrings[\x07-\\a] PASSED tests/test_inspect.py::test_can_handle_special_characters_in_docstrings[\x08-\\b] PASSED tests/test_inspect.py::test_can_handle_special_characters_in_docstrings[\x0c-\\f] PASSED tests/test_inspect.py::test_can_handle_special_characters_in_docstrings[\r-\\r] PASSED tests/test_inspect.py::test_can_handle_special_characters_in_docstrings[\x0b-\\v] PASSED tests/test_inspect.py::test_object_types_mro[object-expected_result0] PASSED tests/test_inspect.py::test_object_types_mro[obj1-expected_result1] PASSED tests/test_inspect.py::test_object_types_mro[hi-expected_result2] PASSED tests/test_inspect.py::test_object_types_mro[str-expected_result3] PASSED tests/test_inspect.py::test_object_types_mro[obj4-expected_result4] PASSED tests/test_inspect.py::test_object_types_mro[Foo-expected_result5] PASSED tests/test_inspect.py::test_object_types_mro[obj6-expected_result6] PASSED tests/test_inspect.py::test_object_types_mro[FooSubclass-expected_result7] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[hi-expected_result0] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[str-expected_result1] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[obj2-expected_result2] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[Foo-expected_result3] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[obj4-expected_result4] PASSED tests/test_inspect.py::test_object_types_mro_as_strings[FooSubclass-expected_result5] PASSED tests/test_inspect.py::test_object_is_one_of_types[hi-types0-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[str-types1-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[hi-types2-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[str-types3-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[obj4-types4-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[Foo-types5-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[obj6-types6-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[Foo-types7-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[obj8-types8-False] PASSED tests/test_inspect.py::test_object_is_one_of_types[Foo-types9-False] PASSED tests/test_inspect.py::test_object_is_one_of_types[obj10-types10-True] PASSED tests/test_inspect.py::test_object_is_one_of_types[Foo-types11-True] PASSED tests/test_json.py::test_print_json_data_with_default PASSED tests/test_jupyter.py::test_jupyter PASSED tests/test_jupyter.py::test_jupyter_columns_env PASSED tests/test_jupyter.py::test_jupyter_lines_env PASSED tests/test_layout.py::test_no_layout PASSED tests/test_layout.py::test_add_split PASSED tests/test_layout.py::test_unsplit PASSED tests/test_layout.py::test_render PASSED tests/test_layout.py::test_tree PASSED tests/test_layout.py::test_refresh_screen PASSED tests/test_live.py::test_live_state PASSED tests/test_live.py::test_growing_display PASSED tests/test_live.py::test_growing_display_transient PASSED tests/test_live.py::test_growing_display_overflow_ellipsis PASSED tests/test_live.py::test_growing_display_overflow_crop PASSED tests/test_live.py::test_growing_display_overflow_visible PASSED tests/test_live.py::test_growing_display_autorefresh PASSED tests/test_live.py::test_growing_display_console_redirect PASSED tests/test_live.py::test_growing_display_file_console PASSED tests/test_live.py::test_live_screen PASSED tests/test_live_render.py::test_renderable PASSED tests/test_live_render.py::test_position_cursor PASSED tests/test_live_render.py::test_restore_cursor PASSED tests/test_live_render.py::test_rich_console PASSED tests/test_log.py::test_log PASSED tests/test_log.py::test_log_caller_frame_info PASSED tests/test_log.py::test_justify PASSED tests/test_logging.py::test_exception PASSED tests/test_logging.py::test_exception_with_extra_lines PASSED tests/test_logging.py::test_stderr_and_stdout_are_none PASSED tests/test_logging.py::test_markup_and_highlight PASSED tests/test_markdown.py::test_markdown_render PASSED tests/test_markdown.py::test_inline_code PASSED tests/test_markdown.py::test_markdown_table PASSED tests/test_markdown.py::test_inline_styles_in_table PASSED tests/test_markdown.py::test_inline_styles_with_justification PASSED tests/test_markdown.py::test_partial_table PASSED tests/test_markdown.py::test_table_with_empty_cells PASSED tests/test_markdown_no_hyperlinks.py::test_markdown_render PASSED tests/test_markup.py::test_re_no_match PASSED tests/test_markup.py::test_re_match PASSED tests/test_markup.py::test_escape PASSED tests/test_markup.py::test_escape_backslash_end PASSED tests/test_markup.py::test_render_escape PASSED tests/test_markup.py::test_parse PASSED tests/test_markup.py::test_parse_link PASSED tests/test_markup.py::test_render PASSED tests/test_markup.py::test_render_not_tags PASSED tests/test_markup.py::test_render_link PASSED tests/test_markup.py::test_render_combine PASSED tests/test_markup.py::test_render_overlap PASSED tests/test_markup.py::test_adjoint PASSED tests/test_markup.py::test_render_close PASSED tests/test_markup.py::test_render_close_ambiguous PASSED tests/test_markup.py::test_markup_error PASSED tests/test_markup.py::test_markup_escape PASSED tests/test_markup.py::test_escape_escape PASSED tests/test_markup.py::test_events PASSED tests/test_markup.py::test_events_broken PASSED tests/test_markup.py::test_render_meta PASSED tests/test_measure.py::test_span PASSED tests/test_measure.py::test_no_renderable PASSED tests/test_measure.py::test_measure_renderables PASSED tests/test_measure.py::test_clamp PASSED tests/test_null_file.py::test_null_file PASSED tests/test_padding.py::test_repr PASSED tests/test_padding.py::test_indent PASSED tests/test_padding.py::test_unpack PASSED tests/test_padding.py::test_expand_false PASSED tests/test_padding.py::test_rich_console PASSED tests/test_palette.py::test_rich_cast PASSED tests/test_panel.py::test_render_panel[panel0-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello, World \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel1-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello, World\u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel2-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello, World\u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel3-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello,\u2502\n\u2502World \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel4-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\u2502\n\u2502\u2502Hello, World \u2502\u2502\n\u2502\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel5-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 FOO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello, World \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_render_panel[panel6-\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502Hello, World \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 FOO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n] PASSED tests/test_panel.py::test_console_width PASSED tests/test_panel.py::test_fixed_width PASSED tests/test_panel.py::test_render_size PASSED tests/test_panel.py::test_title_text PASSED tests/test_pick.py::test_pick_bool PASSED tests/test_pretty.py::test_install PASSED tests/test_pretty.py::test_install_max_depth PASSED tests/test_pretty.py::test_ipy_display_hook__repr_html PASSED tests/test_pretty.py::test_ipy_display_hook__multiple_special_reprs PASSED tests/test_pretty.py::test_ipy_display_hook__no_special_repr_methods PASSED tests/test_pretty.py::test_ipy_display_hook__special_repr_raises_exception PASSED tests/test_pretty.py::test_ipy_display_hook__console_renderables_on_newline PASSED tests/test_pretty.py::test_pretty PASSED tests/test_pretty.py::test_pretty_dataclass PASSED tests/test_pretty.py::test_empty_dataclass PASSED tests/test_pretty.py::test_pretty_namedtuple PASSED tests/test_pretty.py::test_pretty_namedtuple_length_one_no_trailing_comma PASSED tests/test_pretty.py::test_pretty_namedtuple_empty PASSED tests/test_pretty.py::test_pretty_namedtuple_custom_repr PASSED tests/test_pretty.py::test_pretty_namedtuple_fields_invalid_type PASSED tests/test_pretty.py::test_pretty_namedtuple_max_depth PASSED tests/test_pretty.py::test_small_width PASSED tests/test_pretty.py::test_ansi_in_pretty_repr PASSED tests/test_pretty.py::test_broken_repr PASSED tests/test_pretty.py::test_broken_getattr PASSED tests/test_pretty.py::test_reference_cycle_container PASSED tests/test_pretty.py::test_reference_cycle_namedtuple PASSED tests/test_pretty.py::test_reference_cycle_dataclass PASSED tests/test_pretty.py::test_reference_cycle_attrs PASSED tests/test_pretty.py::test_reference_cycle_custom_repr PASSED tests/test_pretty.py::test_max_depth PASSED tests/test_pretty.py::test_max_depth_rich_repr PASSED tests/test_pretty.py::test_max_depth_attrs PASSED tests/test_pretty.py::test_max_depth_dataclass PASSED tests/test_pretty.py::test_defaultdict PASSED tests/test_pretty.py::test_deque PASSED tests/test_pretty.py::test_array PASSED tests/test_pretty.py::test_tuple_of_one PASSED tests/test_pretty.py::test_node PASSED tests/test_pretty.py::test_indent_lines PASSED tests/test_pretty.py::test_pprint PASSED tests/test_pretty.py::test_pprint_max_values PASSED tests/test_pretty.py::test_pprint_max_items PASSED tests/test_pretty.py::test_pprint_max_string PASSED tests/test_pretty.py::test_tuples PASSED tests/test_pretty.py::test_newline PASSED tests/test_pretty.py::test_empty_repr PASSED tests/test_pretty.py::test_attrs PASSED tests/test_pretty.py::test_attrs_empty PASSED tests/test_pretty.py::test_attrs_broken PASSED tests/test_pretty.py::test_attrs_broken_310 SKIPPED (rendered differ...) tests/test_pretty.py::test_user_dict PASSED tests/test_pretty.py::test_lying_attribute PASSED tests/test_pretty.py::test_measure_pretty PASSED tests/test_pretty.py::test_tuple_rich_repr PASSED tests/test_pretty.py::test_tuple_rich_repr_default PASSED tests/test_pretty.py::test_dataclass_no_attribute PASSED tests/test_progress.py::test_bar_columns PASSED tests/test_progress.py::test_text_column PASSED tests/test_progress.py::test_time_elapsed_column PASSED tests/test_progress.py::test_time_remaining_column PASSED tests/test_progress.py::test_compact_time_remaining_column[None---:--] PASSED tests/test_progress.py::test_compact_time_remaining_column[0-00:00] PASSED tests/test_progress.py::test_compact_time_remaining_column[59-00:59] PASSED tests/test_progress.py::test_compact_time_remaining_column[71-01:11] PASSED tests/test_progress.py::test_compact_time_remaining_column[4210-1:10:10] PASSED tests/test_progress.py::test_time_remaining_column_elapsed_when_finished PASSED tests/test_progress.py::test_renderable_column PASSED tests/test_progress.py::test_spinner_column PASSED tests/test_progress.py::test_download_progress_uses_decimal_units PASSED tests/test_progress.py::test_download_progress_uses_binary_units PASSED tests/test_progress.py::test_task_ids PASSED tests/test_progress.py::test_finished PASSED tests/test_progress.py::test_expand_bar PASSED tests/test_progress.py::test_progress_with_none_total_renders_a_pulsing_bar PASSED tests/test_progress.py::test_render PASSED tests/test_progress.py::test_track PASSED tests/test_progress.py::test_progress_track PASSED tests/test_progress.py::test_columns PASSED tests/test_progress.py::test_using_default_columns PASSED tests/test_progress.py::test_task_create PASSED tests/test_progress.py::test_task_start PASSED tests/test_progress.py::test_task_zero_total PASSED tests/test_progress.py::test_progress_create PASSED tests/test_progress.py::test_track_thread PASSED tests/test_progress.py::test_reset PASSED tests/test_progress.py::test_progress_max_refresh PASSED tests/test_progress.py::test_live_is_started_if_progress_is_enabled PASSED tests/test_progress.py::test_live_is_not_started_if_progress_is_disabled PASSED tests/test_progress.py::test_no_output_if_progress_is_disabled PASSED tests/test_progress.py::test_open PASSED tests/test_progress.py::test_open_text_mode PASSED tests/test_progress.py::test_wrap_file PASSED tests/test_progress.py::test_wrap_file_task_total PASSED tests/test_progress.py::test_task_progress_column_speed PASSED tests/test_prompt.py::test_prompt_str PASSED tests/test_prompt.py::test_prompt_str_case_insensitive PASSED tests/test_prompt.py::test_prompt_str_default PASSED tests/test_prompt.py::test_prompt_int PASSED tests/test_prompt.py::test_prompt_confirm_no PASSED tests/test_prompt.py::test_prompt_confirm_yes PASSED tests/test_prompt.py::test_prompt_confirm_default PASSED tests/test_protocol.py::test_rich_cast PASSED tests/test_protocol.py::test_rich_cast_fake PASSED tests/test_protocol.py::test_rich_cast_container PASSED tests/test_protocol.py::test_abc PASSED tests/test_protocol.py::test_cast_deep PASSED tests/test_protocol.py::test_cast_recursive PASSED tests/test_ratio.py::test_ratio_reduce[20-ratios0-maximums0-values0-result0] PASSED tests/test_ratio.py::test_ratio_reduce[20-ratios1-maximums1-values1-result1] PASSED tests/test_ratio.py::test_ratio_reduce[20-ratios2-maximums2-values2-result2] PASSED tests/test_ratio.py::test_ratio_reduce[3-ratios3-maximums3-values3-result3] PASSED tests/test_ratio.py::test_ratio_reduce[3-ratios4-maximums4-values4-result4] PASSED tests/test_ratio.py::test_ratio_reduce[3-ratios5-maximums5-values5-result5] PASSED tests/test_ratio.py::test_ratio_resolve PASSED tests/test_repr.py::test_rich_repr PASSED tests/test_repr.py::test_rich_repr_positional_only PASSED tests/test_repr.py::test_rich_angular PASSED tests/test_repr.py::test_rich_repr_auto PASSED tests/test_repr.py::test_rich_repr_auto_angular PASSED tests/test_repr.py::test_broken_egg PASSED tests/test_repr.py::test_rich_pretty PASSED tests/test_repr.py::test_rich_pretty_angular PASSED tests/test_rich_print.py::test_get_console PASSED tests/test_rich_print.py::test_reconfigure_console PASSED tests/test_rich_print.py::test_rich_print PASSED tests/test_rich_print.py::test_rich_print_json PASSED tests/test_rich_print.py::test_rich_print_json_round_trip PASSED tests/test_rich_print.py::test_rich_print_json_no_truncation PASSED tests/test_rich_print.py::test_rich_print_X PASSED tests/test_rule.py::test_rule PASSED tests/test_rule.py::test_rule_error PASSED tests/test_rule.py::test_rule_align PASSED tests/test_rule.py::test_rule_cjk PASSED tests/test_rule.py::test_rule_not_enough_space_for_title_text[center-\u2500\u2500\u2500\n] PASSED tests/test_rule.py::test_rule_not_enough_space_for_title_text[left-\u2026 \u2500\n] PASSED tests/test_rule.py::test_rule_not_enough_space_for_title_text[right-\u2500 \u2026\n] PASSED tests/test_rule.py::test_rule_center_aligned_title_not_enough_space_for_rule PASSED tests/test_rule.py::test_rule_side_aligned_not_enough_space_for_rule[left] PASSED tests/test_rule.py::test_rule_side_aligned_not_enough_space_for_rule[right] PASSED tests/test_rule.py::test_rule_just_enough_width_available_for_title[center-\u2500 \u2026 \u2500\n] PASSED tests/test_rule.py::test_rule_just_enough_width_available_for_title[left-AB\u2026 \u2500\n] PASSED tests/test_rule.py::test_rule_just_enough_width_available_for_title[right-\u2500 AB\u2026\n] PASSED tests/test_rule.py::test_characters PASSED tests/test_rule.py::test_repr PASSED tests/test_rule.py::test_error PASSED tests/test_rule_in_table.py::test_rule_in_unexpanded_table[expand_kwarg0] PASSED tests/test_rule_in_table.py::test_rule_in_unexpanded_table[expand_kwarg1] PASSED tests/test_rule_in_table.py::test_rule_in_expanded_table PASSED tests/test_rule_in_table.py::test_rule_in_ratio_table PASSED tests/test_screen.py::test_screen PASSED tests/test_segment.py::test_repr PASSED tests/test_segment.py::test_line PASSED tests/test_segment.py::test_apply_style PASSED tests/test_segment.py::test_split_lines PASSED tests/test_segment.py::test_split_and_crop_lines PASSED tests/test_segment.py::test_adjust_line_length PASSED tests/test_segment.py::test_get_line_length PASSED tests/test_segment.py::test_get_shape PASSED tests/test_segment.py::test_set_shape PASSED tests/test_segment.py::test_simplify PASSED tests/test_segment.py::test_filter_control PASSED tests/test_segment.py::test_strip_styles PASSED tests/test_segment.py::test_strip_links PASSED tests/test_segment.py::test_remove_color PASSED tests/test_segment.py::test_is_control PASSED tests/test_segment.py::test_segments_renderable PASSED tests/test_segment.py::test_divide PASSED tests/test_segment.py::test_divide_complex PASSED tests/test_segment.py::test_divide_emoji PASSED tests/test_segment.py::test_divide_edge PASSED tests/test_segment.py::test_divide_edge_2 PASSED tests/test_segment.py::test_split_cells_emoji[XX-4-result0] PASSED tests/test_segment.py::test_split_cells_emoji[X-1-result1] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9-1-result2] PASSED tests/test_segment.py::test_split_cells_emoji[XY-1-result3] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9X-1-result4] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9\U0001f4a9-1-result5] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9Y-2-result6] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9YZ-2-result7] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9\U0001f4a9Z-2-result8] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9\U0001f4a9Z-3-result9] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9\U0001f4a9Z-4-result10] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9\U0001f4a9Z-5-result11] PASSED tests/test_segment.py::test_split_cells_emoji[X\U0001f4a9\U0001f4a9Z-6-result12] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC\U0001f4a9\U0001f4a9-6-result13] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC\U0001f4a9\U0001f4a9-7-result14] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC\U0001f4a9\U0001f4a9-8-result15] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC\U0001f4a9\U0001f4a9-9-result16] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC\U0001f4a9\U0001f4a9-10-result17] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9-3-result18] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9-4-result19] PASSED tests/test_segment.py::test_split_cells_emoji[\U0001f4a9X\U0001f4a9Y\U0001f4a9Z\U0001f4a9A\U0001f4a9-4-result20] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC-4-result21] PASSED tests/test_segment.py::test_split_cells_emoji[XYZABC-5-result22] PASSED tests/test_segment.py::test_split_cells_emoji[a1\u3042\uff11\uff11bcdaef-9-result23] PASSED tests/test_segment.py::test_split_cells_mixed[segment0] PASSED tests/test_segment.py::test_split_cells_mixed[segment1] PASSED tests/test_segment.py::test_split_cells_mixed[segment2] PASSED tests/test_segment.py::test_split_cells_mixed[segment3] PASSED tests/test_segment.py::test_split_cells_mixed[segment4] PASSED tests/test_segment.py::test_split_cells_mixed[segment5] PASSED tests/test_segment.py::test_split_cells_mixed[segment6] PASSED tests/test_segment.py::test_split_cells_mixed[segment7] PASSED tests/test_segment.py::test_split_cells_doubles PASSED tests/test_segment.py::test_split_cells_single PASSED tests/test_segment.py::test_segment_lines_renderable PASSED tests/test_segment.py::test_align_top PASSED tests/test_segment.py::test_align_middle PASSED tests/test_segment.py::test_align_bottom PASSED tests/test_spinner.py::test_spinner_create PASSED tests/test_spinner.py::test_spinner_render PASSED tests/test_spinner.py::test_spinner_update PASSED tests/test_spinner.py::test_rich_measure PASSED tests/test_spinner.py::test_spinner_markup PASSED tests/test_stack.py::test_stack PASSED tests/test_status.py::test_status PASSED tests/test_status.py::test_renderable PASSED tests/test_style.py::test_str PASSED tests/test_style.py::test_ansi_codes PASSED tests/test_style.py::test_repr PASSED tests/test_style.py::test_eq PASSED tests/test_style.py::test_hash PASSED tests/test_style.py::test_empty PASSED tests/test_style.py::test_bool PASSED tests/test_style.py::test_color_property PASSED tests/test_style.py::test_bgcolor_property PASSED tests/test_style.py::test_parse PASSED tests/test_style.py::test_link_id PASSED tests/test_style.py::test_get_html_style PASSED tests/test_style.py::test_chain PASSED tests/test_style.py::test_copy PASSED tests/test_style.py::test_render PASSED tests/test_style.py::test_test PASSED tests/test_style.py::test_add PASSED tests/test_style.py::test_iadd PASSED tests/test_style.py::test_style_stack PASSED tests/test_style.py::test_pick_first PASSED tests/test_style.py::test_background_style PASSED tests/test_style.py::test_without_color PASSED tests/test_style.py::test_meta PASSED tests/test_style.py::test_from_meta PASSED tests/test_style.py::test_on PASSED tests/test_style.py::test_clear_meta_and_links PASSED tests/test_style.py::test_clear_meta_and_links_clears_hash PASSED tests/test_styled.py::test_styled PASSED tests/test_syntax.py::test_blank_lines PASSED tests/test_syntax.py::test_python_render PASSED tests/test_syntax.py::test_python_render_simple PASSED tests/test_syntax.py::test_python_render_simple_passing_lexer_instance PASSED tests/test_syntax.py::test_python_render_simple_indent_guides PASSED tests/test_syntax.py::test_python_render_line_range_indent_guides PASSED tests/test_syntax.py::test_python_render_indent_guides PASSED tests/test_syntax.py::test_pygments_syntax_theme_non_str PASSED tests/test_syntax.py::test_pygments_syntax_theme PASSED tests/test_syntax.py::test_get_line_color_none PASSED tests/test_syntax.py::test_highlight_background_color PASSED tests/test_syntax.py::test_get_number_styles PASSED tests/test_syntax.py::test_get_style_for_token PASSED tests/test_syntax.py::test_option_no_wrap PASSED tests/test_syntax.py::test_syntax_highlight_ranges PASSED tests/test_syntax.py::test_ansi_theme PASSED tests/test_syntax.py::test_from_path PASSED tests/test_syntax.py::test_from_path_unknown_lexer PASSED tests/test_syntax.py::test_from_path_lexer_override PASSED tests/test_syntax.py::test_from_path_lexer_override_invalid_lexer PASSED tests/test_syntax.py::test_syntax_guess_lexer PASSED tests/test_syntax.py::test_syntax_padding PASSED tests/test_syntax.py::test_syntax_measure PASSED tests/test_syntax.py::test_background_color_override_includes_padding PASSED tests/test_table.py::test_render_table PASSED tests/test_table.py::test_not_renderable PASSED tests/test_table.py::test_init_append_column PASSED tests/test_table.py::test_rich_measure PASSED tests/test_table.py::test_min_width PASSED tests/test_table.py::test_no_columns PASSED tests/test_table.py::test_get_row_style PASSED tests/test_table.py::test_vertical_align_top PASSED tests/test_table.py::test_table_show_header_false_substitution[None- 1 2 \n 3 4 \n] PASSED tests/test_table.py::test_table_show_header_false_substitution[box1-\u250c\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502\n\u2502 3 \u2502 4 \u2502\n\u2514\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n] PASSED tests/test_table.py::test_table_show_header_false_substitution[box2-\u250c\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502\n\u2502 3 \u2502 4 \u2502\n\u2514\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n] PASSED tests/test_table.py::test_table_show_header_false_substitution[box3- \u2577 \n 1 \u2502 2 \n 3 \u2502 4 \n \u2575 \n] PASSED tests/test_table.py::test_table_show_header_false_substitution[box4- \u2577 \n 1 \u2502 2 \n 3 \u2502 4 \n \u2575 \n] PASSED tests/test_table.py::test_table_show_header_false_substitution[box5-+---+---+\n| 1 | 2 |\n| 3 | 4 |\n+---+---+\n] PASSED tests/test_table.py::test_section PASSED tests/test_table.py::test_placement_table_box_elements[False-False-abbbbbcbbbbbbbbbcbbbbcbbbbbd\n1Dec 2Skywalker2275M2375M 3\n4May 5Solo 5275M5393M 6\nijjjjjkjjjjjjjjjkjjjjkjjjjjl\n7Dec 8Last Jedi8262M81333M9\nqrrrrrsrrrrrrrrrsrrrrsrrrrrt\n] PASSED tests/test_table.py::test_placement_table_box_elements[True-False-abbbbbcbbbbbbbbbcbbbbcbbbbbd\n1Month2Nickname 2Cost2Gross3\nefffffgfffffffffgffffgfffffh\n4Dec 5Skywalker5275M5375M 6\n4May 5Solo 5275M5393M 6\nijjjjjkjjjjjjjjjkjjjjkjjjjjl\n7Dec 8Last Jedi8262M81333M9\nqrrrrrsrrrrrrrrrsrrrrsrrrrrt\n] PASSED tests/test_table.py::test_placement_table_box_elements[False-True-abbbbbcbbbbbbbbbcbbbbcbbbbbd\n1Dec 2Skywalker2275M2375M 3\n4May 5Solo 5275M5393M 6\nijjjjjkjjjjjjjjjkjjjjkjjjjjl\n4Dec 5Last Jedi5262M51333M6\nmnnnnnonnnnnnnnnonnnnonnnnnp\n7MONTH8NICKNAME 8COST8GROSS9\nqrrrrrsrrrrrrrrrsrrrrsrrrrrt\n] PASSED tests/test_table.py::test_placement_table_box_elements[True-True-abbbbbcbbbbbbbbbcbbbbcbbbbbd\n1Month2Nickname 2Cost2Gross3\nefffffgfffffffffgffffgfffffh\n4Dec 5Skywalker5275M5375M 6\n4May 5Solo 5275M5393M 6\nijjjjjkjjjjjjjjjkjjjjkjjjjjl\n4Dec 5Last Jedi5262M51333M6\nmnnnnnonnnnnnnnnonnnnonnnnnp\n7MONTH8NICKNAME 8COST8GROSS9\nqrrrrrsrrrrrrrrrsrrrrsrrrrrt\n] PASSED tests/test_table.py::test_columns_highlight_added_by_add_row PASSED tests/test_text.py::test_span PASSED tests/test_text.py::test_span_split PASSED tests/test_text.py::test_span_move PASSED tests/test_text.py::test_span_right_crop PASSED tests/test_text.py::test_len PASSED tests/test_text.py::test_cell_len PASSED tests/test_text.py::test_bool PASSED tests/test_text.py::test_str PASSED tests/test_text.py::test_repr PASSED tests/test_text.py::test_add PASSED tests/test_text.py::test_eq PASSED tests/test_text.py::test_contain PASSED tests/test_text.py::test_plain_property PASSED tests/test_text.py::test_plain_property_setter PASSED tests/test_text.py::test_from_markup PASSED tests/test_text.py::test_from_ansi PASSED tests/test_text.py::test_copy PASSED tests/test_text.py::test_rstrip PASSED tests/test_text.py::test_rstrip_end PASSED tests/test_text.py::test_stylize PASSED tests/test_text.py::test_stylize_before PASSED tests/test_text.py::test_stylize_negative_index PASSED tests/test_text.py::test_highlight_regex PASSED tests/test_text.py::test_highlight_regex_callable PASSED tests/test_text.py::test_highlight_words PASSED tests/test_text.py::test_set_length PASSED tests/test_text.py::test_console_width PASSED tests/test_text.py::test_join PASSED tests/test_text.py::test_trim_spans PASSED tests/test_text.py::test_pad_left PASSED tests/test_text.py::test_pad_right PASSED tests/test_text.py::test_append PASSED tests/test_text.py::test_append_text PASSED tests/test_text.py::test_end PASSED tests/test_text.py::test_split PASSED tests/test_text.py::test_split_spans PASSED tests/test_text.py::test_divide PASSED tests/test_text.py::test_right_crop PASSED tests/test_text.py::test_wrap_3 PASSED tests/test_text.py::test_wrap_4 PASSED tests/test_text.py::test_wrap_wrapped_word_length_greater_than_available_width PASSED tests/test_text.py::test_wrap_cjk PASSED tests/test_text.py::test_wrap_cjk_width_mid_character PASSED tests/test_text.py::test_wrap_cjk_mixed PASSED tests/test_text.py::test_wrap_long PASSED tests/test_text.py::test_wrap_overflow PASSED tests/test_text.py::test_wrap_overflow_long PASSED tests/test_text.py::test_wrap_long_words PASSED tests/test_text.py::test_wrap_long_words_2 PASSED tests/test_text.py::test_wrap_long_words_followed_by_other_words PASSED tests/test_text.py::test_wrap_long_word_preceeded_by_word_of_full_line_length PASSED tests/test_text.py::test_wrap_multiple_consecutive_spaces PASSED tests/test_text.py::test_wrap_long_words_justify_left PASSED tests/test_text.py::test_wrap_leading_and_trailing_whitespace PASSED tests/test_text.py::test_no_wrap_no_crop PASSED tests/test_text.py::test_fit PASSED tests/test_text.py::test_wrap_tabs PASSED tests/test_text.py::test_render PASSED tests/test_text.py::test_render_simple PASSED tests/test_text.py::test_print[.-.\n] PASSED tests/test_text.py::test_print[print_text1-. .\n] PASSED tests/test_text.py::test_print[print_text2-Hello World !\n] PASSED tests/test_text.py::test_print_sep_end[.-.X] PASSED tests/test_text.py::test_print_sep_end[print_text1-..X] PASSED tests/test_text.py::test_print_sep_end[print_text2-HelloWorld!X] PASSED tests/test_text.py::test_tabs_to_spaces PASSED tests/test_text.py::test_tabs_to_spaces_spans[-4--expected_spans0] PASSED tests/test_text.py::test_tabs_to_spaces_spans[\t-4- -expected_spans1] PASSED tests/test_text.py::test_tabs_to_spaces_spans[\tbar-4- bar-expected_spans2] PASSED tests/test_text.py::test_tabs_to_spaces_spans[foo\tbar-4-foo bar-expected_spans3] PASSED tests/test_text.py::test_tabs_to_spaces_spans[foo\nbar\nbaz-4-foo\nbar\nbaz-expected_spans4] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[bold]foo\tbar-4-foo bar-expected_spans5] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[bold]\tbar-4- bar-expected_spans6] PASSED tests/test_text.py::test_tabs_to_spaces_spans[\t[bold]bar-4- bar-expected_spans7] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[red]foo\tbar\n[green]egg\tbaz-8-foo bar\negg baz-expected_spans8] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[bold]X\tY-8-X Y-expected_spans9] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[bold]\U0001f4a9\t\U0001f4a9-8-\U0001f4a9 \U0001f4a9-expected_spans10] PASSED tests/test_text.py::test_tabs_to_spaces_spans[[bold]\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9\t\U0001f4a9-8-\U0001f4a9\U0001f4a9\U0001f4a9\U0001f4a9 \U0001f4a9-expected_spans11] PASSED tests/test_text.py::test_markup_switch PASSED tests/test_text.py::test_emoji PASSED tests/test_text.py::test_emoji_switch PASSED tests/test_text.py::test_assemble PASSED tests/test_text.py::test_assemble_meta PASSED tests/test_text.py::test_styled PASSED tests/test_text.py::test_strip_control_codes PASSED tests/test_text.py::test_get_style_at_offset PASSED tests/test_text.py::test_truncate_ellipsis[Hello-10-Hello] PASSED tests/test_text.py::test_truncate_ellipsis[Hello-5-Hello] PASSED tests/test_text.py::test_truncate_ellipsis[Hello-4-Hel\u2026] PASSED tests/test_text.py::test_truncate_ellipsis[Hello-3-He\u2026] PASSED tests/test_text.py::test_truncate_ellipsis[Hello-2-H\u2026] PASSED tests/test_text.py::test_truncate_ellipsis[Hello-1-\u2026] PASSED tests/test_text.py::test_truncate_ellipsis_pad[Hello-5-Hello] PASSED tests/test_text.py::test_truncate_ellipsis_pad[Hello-10-Hello ] PASSED tests/test_text.py::test_truncate_ellipsis_pad[Hello-3-He\u2026] PASSED tests/test_text.py::test_pad PASSED tests/test_text.py::test_align_left PASSED tests/test_text.py::test_align_right PASSED tests/test_text.py::test_align_center PASSED tests/test_text.py::test_detect_indentation PASSED tests/test_text.py::test_indentation_guides PASSED tests/test_text.py::test_slice PASSED tests/test_text.py::test_wrap_invalid_style PASSED tests/test_text.py::test_apply_meta PASSED tests/test_text.py::test_on PASSED tests/test_text.py::test_markup_property PASSED tests/test_text.py::test_extend_style PASSED tests/test_text.py::test_append_tokens PASSED tests/test_text.py::test_append_loop_regression PASSED tests/test_theme.py::test_inherit PASSED tests/test_theme.py::test_config PASSED tests/test_theme.py::test_from_file PASSED tests/test_theme.py::test_read PASSED tests/test_theme.py::test_theme_stack PASSED tests/test_tools.py::test_loop_first PASSED tests/test_tools.py::test_loop_last PASSED tests/test_tools.py::test_loop_first_last PASSED tests/test_tools.py::test_ratio_distribute PASSED tests/test_traceback.py::test_handler PASSED tests/test_traceback.py::test_capture PASSED tests/test_traceback.py::test_no_exception PASSED tests/test_traceback.py::test_print_exception PASSED tests/test_traceback.py::test_print_exception_no_msg PASSED tests/test_traceback.py::test_print_exception_locals PASSED tests/test_traceback.py::test_syntax_error PASSED tests/test_traceback.py::test_nested_exception PASSED tests/test_traceback.py::test_caused_exception PASSED tests/test_traceback.py::test_filename_with_bracket PASSED tests/test_traceback.py::test_filename_not_a_file PASSED tests/test_traceback.py::test_traceback_console_theme_applies PASSED tests/test_traceback.py::test_broken_str PASSED tests/test_traceback.py::test_guess_lexer PASSED tests/test_traceback.py::test_guess_lexer_yaml_j2 PASSED tests/test_traceback.py::test_recursive PASSED tests/test_traceback.py::test_suppress PASSED tests/test_traceback.py::test_rich_traceback_omit_optional_local_flag[True-3-expected_frame_names0] PASSED tests/test_traceback.py::test_rich_traceback_omit_optional_local_flag[False-4-expected_frame_names1] PASSED tests/test_traceback.py::test_traceback_finely_grained_missing PASSED tests/test_traceback.py::test_traceback_finely_grained SKIPPED (Not ...) tests/test_tree.py::test_render_single_node PASSED tests/test_tree.py::test_render_single_branch PASSED tests/test_tree.py::test_render_double_branch PASSED tests/test_tree.py::test_render_ascii PASSED tests/test_tree.py::test_render_tree_non_win32 PASSED tests/test_tree.py::test_render_tree_win32 SKIPPED (Windows specific) tests/test_tree.py::test_render_tree_hide_root_non_win32 PASSED tests/test_tree.py::test_render_tree_hide_root_win32 SKIPPED (Window...) tests/test_tree.py::test_tree_measure PASSED tests/test_windows_renderer.py::test_text_only SKIPPED (windows only) tests/test_windows_renderer.py::test_text_multiple_segments SKIPPED tests/test_windows_renderer.py::test_text_with_style SKIPPED (window...) tests/test_windows_renderer.py::test_control_cursor_move_to SKIPPED tests/test_windows_renderer.py::test_control_carriage_return SKIPPED tests/test_windows_renderer.py::test_control_home SKIPPED (windows only) tests/test_windows_renderer.py::test_control_cursor_single_cell_movement[ControlType.CURSOR_UP-move_cursor_up] SKIPPED tests/test_windows_renderer.py::test_control_cursor_single_cell_movement[ControlType.CURSOR_DOWN-move_cursor_down] SKIPPED tests/test_windows_renderer.py::test_control_cursor_single_cell_movement[ControlType.CURSOR_FORWARD-move_cursor_forward] SKIPPED tests/test_windows_renderer.py::test_control_cursor_single_cell_movement[ControlType.CURSOR_BACKWARD-move_cursor_backward] SKIPPED tests/test_windows_renderer.py::test_control_erase_line[0-erase_end_of_line] SKIPPED tests/test_windows_renderer.py::test_control_erase_line[1-erase_start_of_line] SKIPPED tests/test_windows_renderer.py::test_control_erase_line[2-erase_line] SKIPPED tests/test_windows_renderer.py::test_control_show_cursor SKIPPED (wi...) tests/test_windows_renderer.py::test_control_hide_cursor SKIPPED (wi...) tests/test_windows_renderer.py::test_control_cursor_move_to_column SKIPPED tests/test_windows_renderer.py::test_control_set_terminal_window_title SKIPPED ======== 850 passed, 24 skipped ======== py$(PYV): OK congratulations :)