--- Begin Message ---
Source: rich
Version: 10.16.2-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> PYBUILD_SYSTEM=custom PYBUILD_TEST_ARGS="PYTHONPATH=/<<PKGBUILDDIR>>
> {interpreter} -m pytest" dh_auto_test
> I: pybuild base:237: PYTHONPATH=/<<PKGBUILDDIR>> python3.10 -m pytest
> ============================= test session starts
> ==============================
> platform linux -- Python 3.10.2, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 583 items
>
> tests/test_align.py ................ [
> 2%]
> tests/test_ansi.py . [
> 2%]
> tests/test_bar.py ....... [
> 4%]
> tests/test_block_bar.py .... [
> 4%]
> tests/test_box.py ...... [
> 5%]
> tests/test_card.py . [
> 6%]
> tests/test_cells.py .. [
> 6%]
> tests/test_color.py ................. [
> 9%]
> tests/test_color_triplet.py ... [
> 9%]
> tests/test_columns.py . [
> 9%]
> tests/test_columns_align.py . [
> 10%]
> tests/test_console.py .................................................. [
> 18%]
> .......................... [
> 23%]
> tests/test_constrain.py . [
> 23%]
> tests/test_containers.py .... [
> 24%]
> tests/test_control.py ..... [
> 24%]
> tests/test_emoji.py ...... [
> 25%]
> tests/test_file_proxy.py .. [
> 26%]
> tests/test_filesize.py .. [
> 26%]
> tests/test_highlighter.py ...................................... [
> 33%]
> tests/test_inspect.py ........ [
> 34%]
> tests/test_json.py . [
> 34%]
> tests/test_jupyter.py . [
> 34%]
> tests/test_layout.py ...... [
> 35%]
> tests/test_live.py .......... [
> 37%]
> tests/test_live_render.py .... [
> 38%]
> tests/test_log.py ... [
> 38%]
> tests/test_logging.py .... [
> 39%]
> tests/test_lrucache.py . [
> 39%]
> tests/test_markdown.py .. [
> 39%]
> tests/test_markdown_no_hyperlinks.py . [
> 40%]
> tests/test_markup.py ................... [
> 43%]
> tests/test_measure.py .... [
> 44%]
> tests/test_padding.py ..... [
> 44%]
> tests/test_palette.py . [
> 45%]
> tests/test_panel.py ......... [
> 46%]
> tests/test_pick.py . [
> 46%]
> tests/test_pretty.py .....................s... [
> 51%]
> tests/test_progress.py ......................... [
> 55%]
> tests/test_prompt.py ...... [
> 56%]
> tests/test_protocol.py ...... [
> 57%]
> tests/test_ratio.py ....... [
> 58%]
> tests/test_repr.py ........ [
> 60%]
> tests/test_rich_print.py ....... [
> 61%]
> tests/test_rule.py ....... [
> 62%]
> tests/test_screen.py . [
> 62%]
> tests/test_segment.py ............................................. [
> 70%]
> tests/test_spinner.py ..... [
> 71%]
> tests/test_stack.py . [
> 71%]
> tests/test_status.py .. [
> 71%]
> tests/test_style.py ......................... [
> 75%]
> tests/test_styled.py . [
> 76%]
> tests/test_syntax.py .FF..F.......... [
> 78%]
> tests/test_table.py ....... [
> 80%]
> tests/test_tabulate.py . [
> 80%]
> tests/test_text.py ..................................................... [
> 89%]
> ............................. [
> 94%]
> tests/test_theme.py ..... [
> 95%]
> tests/test_tools.py .... [
> 95%]
> tests/test_traceback.py ............... [
> 98%]
> tests/test_tree.py .....s.s.
> [100%]
>
> =================================== FAILURES
> ===================================
> ______________________________ test_python_render
> ______________________________
>
> def test_python_render():
> syntax = Panel.fit(
> Syntax(
> CODE,
> lexer_name="python",
> line_numbers=True,
> line_range=(2, 10),
> theme="foo",
> code_width=60,
> word_wrap=True,
> ),
> padding=0,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> > assert rendered_syntax == expected
> E AssertionError: assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 1906 identical leading characters in diff, use -v to show
> E Skipping 1814 identical trailing characters in diff, use -v to show
> E - [1;38;2;210;65;58;48;2;248
> E ? - ^ ^
> E + [1;38;2;203;63;56;48;2;248
> E ? + ^ ^
>
> tests/test_syntax.py:59: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> __________________________ test_python_render_simple
> ___________________________
>
> def test_python_render_simple():
> syntax = Syntax(
> CODE,
> lexer_name="python",
> line_numbers=False,
> theme="foo",
> code_width=60,
> word_wrap=False,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '\x1b[1;38;2;0;128;0;48;2;248;248;248mdef\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;255;48;2;248;248;248mloop_first_last\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mT\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m]\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m-\x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m>\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mTuple\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mb\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a
> tuple with a flag for first an\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n'
> > assert rendered_syntax == expected
> E AssertionError: assert '\x1b[1;38;2;... \x1b[0m\n' ==
> '\x1b[1;38;2;... \x1b[0m\n'
> E Skipping 2033 identical leading characters in diff, use -v to show
> E Skipping 2431 identical trailing characters in diff, use -v to show
> E - [1;38;2;210;65;58;48;2;248
> E ? - ^ ^
> E + [1;38;2;203;63;56;48;2;248
> E ? + ^ ^
>
> tests/test_syntax.py:74: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '\x1b[1;38;2;0;128;0;48;2;248;248;248mdef\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;255;48;2;248;248;248mloop_first_last\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mT\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m]\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m-\x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m>\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mTuple\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mb\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a
> tuple with a flag for first an\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n'
> _______________________ test_python_render_indent_guides
> _______________________
>
> def test_python_render_indent_guides():
> syntax = Panel.fit(
> Syntax(
> CODE,
> lexer_name="python",
> line_numbers=True,
> line_range=(2, 10),
> theme="foo",
> code_width=60,
> word_wrap=True,
> indent_guides=True,
> ),
> padding=0,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> > assert rendered_syntax == expected
> E assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 154 identical leading characters in diff, use -v to show
> E Skipping 478 identical trailing characters in diff, use -v to show
> E - 2;3;38;2;64;128;128;48;2;248;248;248m│
> [0m[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with
> a flag for first [0m[48;2;248;248;248m [0m│
> E ? ^ ^ ^
> E + 2;3;38;2;61;123;123;48;2;248;248;248m│
> [0m[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with
> a flag for first [0m[48;2;248;248;248m [0m│
> E ? ^ ^ ^
> E │[48;2;248;248;248m
> [0m[3;38;2;186;33;33;48;2;248;248;248mand ...
> E
> E ...Full output truncated (33 lines hidden), use '-vv' to show
>
> tests/test_syntax.py:127: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> =============================== warnings summary
> ===============================
> tests/test_tabulate.py: 17 warnings
> /<<PKGBUILDDIR>>/rich/tabulate.py:32: DeprecationWarning: tabulate_mapping
> will be deprecated in Rich v11
> warnings.warn("tabulate_mapping will be deprecated in Rich v11",
> DeprecationWarning)
>
> -- Docs: https://docs.pytest.org/en/stable/warnings.html
> =========================== short test summary info
> ============================
> FAILED tests/test_syntax.py::test_python_render - AssertionError: assert
> '╭──...
> FAILED tests/test_syntax.py::test_python_render_simple - AssertionError:
> asse...
> FAILED tests/test_syntax.py::test_python_render_indent_guides - assert
> '╭────...
> ============ 3 failed, 577 passed, 3 skipped, 17 warnings in 4.70s
> =============
> E: pybuild pybuild:367: test: plugin custom failed with: exit code=1:
> PYTHONPATH=/<<PKGBUILDDIR>> python3.10 -m pytest
> I: pybuild base:237: PYTHONPATH=/<<PKGBUILDDIR>> python3.9 -m pytest
> ============================= test session starts
> ==============================
> platform linux -- Python 3.9.10, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 583 items
>
> tests/test_align.py ................ [
> 2%]
> tests/test_ansi.py . [
> 2%]
> tests/test_bar.py ....... [
> 4%]
> tests/test_block_bar.py .... [
> 4%]
> tests/test_box.py ...... [
> 5%]
> tests/test_card.py . [
> 6%]
> tests/test_cells.py .. [
> 6%]
> tests/test_color.py ................. [
> 9%]
> tests/test_color_triplet.py ... [
> 9%]
> tests/test_columns.py . [
> 9%]
> tests/test_columns_align.py . [
> 10%]
> tests/test_console.py .................................................. [
> 18%]
> .......................... [
> 23%]
> tests/test_constrain.py . [
> 23%]
> tests/test_containers.py .... [
> 24%]
> tests/test_control.py ..... [
> 24%]
> tests/test_emoji.py ...... [
> 25%]
> tests/test_file_proxy.py .. [
> 26%]
> tests/test_filesize.py .. [
> 26%]
> tests/test_highlighter.py ...................................... [
> 33%]
> tests/test_inspect.py ......s. [
> 34%]
> tests/test_json.py . [
> 34%]
> tests/test_jupyter.py . [
> 34%]
> tests/test_layout.py ...... [
> 35%]
> tests/test_live.py .......... [
> 37%]
> tests/test_live_render.py .... [
> 38%]
> tests/test_log.py ... [
> 38%]
> tests/test_logging.py .... [
> 39%]
> tests/test_lrucache.py . [
> 39%]
> tests/test_markdown.py .. [
> 39%]
> tests/test_markdown_no_hyperlinks.py . [
> 40%]
> tests/test_markup.py ................... [
> 43%]
> tests/test_measure.py .... [
> 44%]
> tests/test_padding.py ..... [
> 44%]
> tests/test_palette.py . [
> 45%]
> tests/test_panel.py ......... [
> 46%]
> tests/test_pick.py . [
> 46%]
> tests/test_pretty.py ......................s.. [
> 51%]
> tests/test_progress.py ......................... [
> 55%]
> tests/test_prompt.py ...... [
> 56%]
> tests/test_protocol.py ...... [
> 57%]
> tests/test_ratio.py ....... [
> 58%]
> tests/test_repr.py ........ [
> 60%]
> tests/test_rich_print.py ....... [
> 61%]
> tests/test_rule.py ....... [
> 62%]
> tests/test_screen.py . [
> 62%]
> tests/test_segment.py ............................................. [
> 70%]
> tests/test_spinner.py ..... [
> 71%]
> tests/test_stack.py . [
> 71%]
> tests/test_status.py .. [
> 71%]
> tests/test_style.py ......................... [
> 75%]
> tests/test_styled.py . [
> 76%]
> tests/test_syntax.py .FF..F.......... [
> 78%]
> tests/test_table.py ....... [
> 80%]
> tests/test_tabulate.py . [
> 80%]
> tests/test_text.py ..................................................... [
> 89%]
> ............................. [
> 94%]
> tests/test_theme.py ..... [
> 95%]
> tests/test_tools.py .... [
> 95%]
> tests/test_traceback.py ............... [
> 98%]
> tests/test_tree.py .....s.s.
> [100%]
>
> =================================== FAILURES
> ===================================
> ______________________________ test_python_render
> ______________________________
>
> def test_python_render():
> syntax = Panel.fit(
> Syntax(
> CODE,
> lexer_name="python",
> line_numbers=True,
> line_range=(2, 10),
> theme="foo",
> code_width=60,
> word_wrap=True,
> ),
> padding=0,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> > assert rendered_syntax == expected
> E AssertionError: assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 1906 identical leading characters in diff, use -v to show
> E Skipping 1814 identical trailing characters in diff, use -v to show
> E - [1;38;2;210;65;58;48;2;248
> E ? - ^ ^
> E + [1;38;2;203;63;56;48;2;248
> E ? + ^ ^
>
> tests/test_syntax.py:59: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> __________________________ test_python_render_simple
> ___________________________
>
> def test_python_render_simple():
> syntax = Syntax(
> CODE,
> lexer_name="python",
> line_numbers=False,
> theme="foo",
> code_width=60,
> word_wrap=False,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '\x1b[1;38;2;0;128;0;48;2;248;248;248mdef\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;255;48;2;248;248;248mloop_first_last\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mT\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m]\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m-\x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m>\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mTuple\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mb\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a
> tuple with a flag for first an\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n'
> > assert rendered_syntax == expected
> E AssertionError: assert '\x1b[1;38;2;... \x1b[0m\n' ==
> '\x1b[1;38;2;... \x1b[0m\n'
> E Skipping 2033 identical leading characters in diff, use -v to show
> E Skipping 2431 identical trailing characters in diff, use -v to show
> E - [1;38;2;210;65;58;48;2;248
> E ? - ^ ^
> E + [1;38;2;203;63;56;48;2;248
> E ? + ^ ^
>
> tests/test_syntax.py:74: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '\x1b[1;38;2;0;128;0;48;2;248;248;248mdef\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;255;48;2;248;248;248mloop_first_last\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mT\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m]\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m-\x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m>\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mIterable\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mTuple\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m[\x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mb\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a
> tuple with a flag for first an\x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n\x1b[38;2;0;0;0;48;2;248;248;248m
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m\n'
> _______________________ test_python_render_indent_guides
> _______________________
>
> def test_python_render_indent_guides():
> syntax = Panel.fit(
> Syntax(
> CODE,
> lexer_name="python",
> line_numbers=True,
> line_range=(2, 10),
> theme="foo",
> code_width=60,
> word_wrap=True,
> indent_guides=True,
> ),
> padding=0,
> )
> rendered_syntax = render(syntax)
> print(repr(rendered_syntax))
> expected =
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;210;65;58;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[2;3;38;2;64;128;128;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> > assert rendered_syntax == expected
> E assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 154 identical leading characters in diff, use -v to show
> E Skipping 478 identical trailing characters in diff, use -v to show
> E - 2;3;38;2;64;128;128;48;2;248;248;248m│
> [0m[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with
> a flag for first [0m[48;2;248;248;248m [0m│
> E ? ^ ^ ^
> E + 2;3;38;2;61;123;123;48;2;248;248;248m│
> [0m[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple with
> a flag for first [0m[48;2;248;248;248m [0m│
> E ? ^ ^ ^
> E │[48;2;248;248;248m
> [0m[3;38;2;186;33;33;48;2;248;248;248mand ...
> E
> E ...Full output truncated (33 lines hidden), use '-vv' to show
>
> tests/test_syntax.py:127: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> '╭────────────────────────────────────────────────────────────────╮\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 2
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248m"""Iterate and generate a tuple
> with a flag for first \x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[48;2;248;248;248m
> \x1b[0m\x1b[3;38;2;186;33;33;48;2;248;248;248mand last
> value."""\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 3
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248miter\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalues\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 4
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mtry\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 5
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;128;0;48;2;248;248;248mnext\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m(\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m)\x1b[0m\x1b[48;2;248;248;248m
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 6
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mexcept\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;203;63;56;48;2;248;248;248mStopIteration\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 7
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mreturn\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 8
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;102;102;102;48;2;248;248;248m=\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mTrue\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m 9
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mfor\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mvalue\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;170;34;255;48;2;248;248;248min\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248miter_values\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m:\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n│\x1b[1;38;2;24;24;24;48;2;248;248;248m
> \x1b[0m\x1b[38;2;173;173;173;48;2;248;248;248m10
> \x1b[0m\x1b[2;3;38;2;61;123;123;48;2;248;248;248m│ │
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248myield\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mfirst\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[1;38;2;0;128;0;48;2;248;248;248mFalse\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m,\x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248m
>
> \x1b[0m\x1b[38;2;0;0;0;48;2;248;248;248mprevious_value\x1b[0m\x1b[48;2;248;248;248m
>
> \x1b[0m│\n╰────────────────────────────────────────────────────────────────╯\n'
> =============================== warnings summary
> ===============================
> tests/test_tabulate.py: 17 warnings
> /<<PKGBUILDDIR>>/rich/tabulate.py:32: DeprecationWarning: tabulate_mapping
> will be deprecated in Rich v11
> warnings.warn("tabulate_mapping will be deprecated in Rich v11",
> DeprecationWarning)
>
> -- Docs: https://docs.pytest.org/en/stable/warnings.html
> =========================== short test summary info
> ============================
> FAILED tests/test_syntax.py::test_python_render - AssertionError: assert
> '╭──...
> FAILED tests/test_syntax.py::test_python_render_simple - AssertionError:
> asse...
> FAILED tests/test_syntax.py::test_python_render_indent_guides - assert
> '╭────...
> ============ 3 failed, 576 passed, 4 skipped, 17 warnings in 4.75s
> =============
> E: pybuild pybuild:367: test: plugin custom failed with: exit code=1:
> PYTHONPATH=/<<PKGBUILDDIR>> python3.9 -m pytest
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10
> 3.9" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2022/02/18/rich_10.16.2-1_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
--- End Message ---