Your message dated Sun, 27 Feb 2022 05:34:33 +0000
with message-id <[email protected]>
and subject line Bug#983326: fixed in rich 11.2.0-1
has caused the Debian Bug report #983326,
regarding rich: test failures with TERM=unknown
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
983326: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983326
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: rich
Version: 9.11.0-1
Severity: important

Hello, looks like the testsuite is failing with TERM=unknown, I don't really 
know why, but calling dh_auto_test with TERM=linux seems to fix it.

override_dh_auto_test:
        TERM=linux PYBUILD_SYSTEM=custom 
PYBUILD_TEST_ARGS="PYTHONPATH=$(CURDIR) {interpreter} -m pytest" dh_auto_test


I'm not adding the tag "patch" because some bug in the code probably exists.

Example of failure:
https://launchpadlibrarian.net/524437846/buildlog_ubuntu-hirsute-amd64.rich_9.11.0-1_BUILDING.txt.gz



APT_CONFIG=/var/lib/sbuild/apt.conf
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
LANG=C.UTF-8
LC_ALL=C.UTF-8
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=build-PACKAGEBUILD-21056332
SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-21056332
SCHROOT_COMMAND=env
SCHROOT_GID=2501
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=build-PACKAGEBUILD-21056332
SCHROOT_UID=2001
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=unknown
USER=buildd
V=1

dpkg-buildpackage
-----------------

dpkg-buildpackage: info: source package rich
dpkg-buildpackage: info: source version 9.11.0-1
dpkg-buildpackage: info: source distribution unstable
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
dpkg-source: info: using options from rich-9.11.0/debian/source/options: 
--extend-diff-ignore=^[^/]+.egg-info/
 fakeroot debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:232: python3.9 setup.py clean 
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_rich/build' (and everything 
under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.9' does not exist -- can't clean it
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:232: python3.9 setup.py config 
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:232: /usr/bin/python3 setup.py build 
running build
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
PYBUILD_SYSTEM=custom PYBUILD_TEST_ARGS="PYTHONPATH=/<<PKGBUILDDIR>> 
{interpreter} -m pytest" dh_auto_test
I: pybuild base:232: PYTHONPATH=/<<PKGBUILDDIR>> python3.9 -m pytest
============================= test session starts ==============================
platform linux -- Python 3.9.2, pytest-6.0.2, py-1.10.0, pluggy-0.13.0
rootdir: /<<PKGBUILDDIR>>
collected 464 items

tests/test_align.py ..........F.....                                     [  3%]
tests/test_ansi.py .                                                     [  3%]
tests/test_bar.py .......                                                [  5%]
tests/test_block_bar.py ....                                             [  6%]
tests/test_box.py ......                                                 [  7%]
tests/test_card.py .                                                     [  7%]
tests/test_cells.py .                                                    [  7%]
tests/test_color.py ................                                     [ 11%]
tests/test_color_triplet.py ...                                          [ 11%]
tests/test_columns.py .                                                  [ 12%]
tests/test_columns_align.py .                                            [ 12%]
tests/test_console.py F............FF.....F......FFF.FFF.........F...... [ 23%]
...FF.                                                                   [ 24%]
tests/test_constrain.py .                                                [ 24%]
tests/test_containers.py ....                                            [ 25%]
tests/test_control.py ..                                                 [ 25%]
tests/test_emoji.py ....                                                 [ 26%]
tests/test_file_proxy.py ..                                              [ 27%]
tests/test_filesize.py ..                                                [ 27%]
tests/test_highlighter.py .....................................          [ 35%]
tests/test_inspect.py ........                                           [ 37%]
tests/test_jupyter.py .                                                  [ 37%]
tests/test_layout.py ..                                                  [ 37%]
tests/test_live.py .FFFFF.F.F                                            [ 40%]
tests/test_live_render.py ....                                           [ 40%]
tests/test_log.py ..                                                     [ 41%]
tests/test_logging.py FF                                                 [ 41%]
tests/test_lrucache.py .                                                 [ 42%]
tests/test_markdown.py ..                                                [ 42%]
tests/test_markdown_no_hyperlinks.py .                                   [ 42%]
tests/test_markup.py ...............                                     [ 45%]
tests/test_measure.py .....                                              [ 46%]
tests/test_padding.py .....                                              [ 48%]
tests/test_palette.py .                                                  [ 48%]
tests/test_panel.py ........                                             [ 50%]
tests/test_pick.py .                                                     [ 50%]
tests/test_pretty.py ................                                    [ 53%]
tests/test_progress.py .........FFFFF......F                             [ 58%]
tests/test_prompt.py ......                                              [ 59%]
tests/test_protocol.py ...                                               [ 60%]
tests/test_ratio.py .......                                              [ 61%]
tests/test_rich_print.py ....                                            [ 62%]
tests/test_rule.py F..FF..                                               [ 64%]
tests/test_screen.py .                                                   [ 64%]
tests/test_segment.py ...............                                    [ 67%]
tests/test_spinner.py ...                                                [ 68%]
tests/test_stack.py .                                                    [ 68%]
tests/test_status.py ..                                                  [ 68%]
tests/test_style.py ......................                               [ 73%]
tests/test_styled.py F                                                   [ 73%]
tests/test_syntax.py ............                                        [ 76%]
tests/test_table.py F....                                                [ 77%]
tests/test_tabulate.py .                                                 [ 77%]
tests/test_text.py ..................................................... [ 89%]
........................                                                 [ 94%]
tests/test_theme.py .....                                                [ 95%]
tests/test_tools.py ....                                                 [ 96%]
tests/test_traceback.py ............                                     [ 98%]
tests/test_tree.py ....s.                                                [100%]

=================================== FAILURES ===================================
____________________________ test_align_right_style ____________________________

    def test_align_right_style():
        console = Console(
            file=io.StringIO(), width=10, color_system="truecolor", 
force_terminal=True
        )
        console.print(Align("foo", "right", style="on blue"))
>       assert console.file.getvalue() == "\x1b[44m       
> \x1b[0m\x1b[44mfoo\x1b[0m\n"
E       AssertionError: assert '\x1b[44m    ...mfoo\x1b[0m\n' == '\x1b[44m    
...mfoo\x1b[0m\n'
E         -        foo
E         +                                                                
              foo

tests/test_align.py:101: AssertionError
______________________________ test_dumb_terminal ______________________________

    def test_dumb_terminal():
        console = Console(force_terminal=True)
>       assert console.color_system is not None
E       assert None is not None
E        +  where None = <console width=80 None>.color_system

tests/test_console.py:29: AssertionError
_______________________________ test_show_cursor _______________________________

    def test_show_cursor():
        console = Console(file=io.StringIO(), force_terminal=True, 
legacy_windows=False)
        console.show_cursor(False)
        console.print("foo")
        console.show_cursor(True)
>       assert console.file.getvalue() == "\x1b[?25lfoo\n\x1b[?25h"
E       AssertionError: assert 'foo\n' == '\x1b[?25lfoo\n\x1b[?25h'
E         + foo
E         - [?25lfoo
E         - [?25h

tests/test_console.py:168: AssertionError
__________________________________ test_clear __________________________________

    def test_clear():
        console = Console(file=io.StringIO(), force_terminal=True)
        console.clear()
        console.clear(home=False)
>       assert console.file.getvalue() == "\033[2J\033[H" + "\033[2J"
E       AssertionError: assert '' == '\x1b[2J\x1b[H\x1b[2J'
E         - 

tests/test_console.py:175: AssertionError
_________________________________ test_control _________________________________

    def test_control():
        console = Console(file=io.StringIO(), force_terminal=True)
        console.control("FOO")
        console.print("BAR")
>       assert console.file.getvalue() == "FOOBAR\n"
E       AssertionError: assert 'BAR\n' == 'FOOBAR\n'
E         - FOOBAR
E         + BAR

tests/test_console.py:213: AssertionError
______________________________ test_justify_left _______________________________

    def test_justify_left():
        console = Console(file=io.StringIO(), force_terminal=True, width=20)
        console.print("FOO", justify="left")
>       assert console.file.getvalue() == "FOO                 \n"
E       AssertionError: assert 'FOO         ...           \n' == 'FOO           
      \n'
E         - FOO                 
E         + FOO

tests/test_console.py:278: AssertionError
_____________________________ test_justify_center ______________________________

    def test_justify_center():
        console = Console(file=io.StringIO(), force_terminal=True, width=20)
        console.print("FOO", justify="center")
>       assert console.file.getvalue() == "        FOO         \n"
E       AssertionError: assert '            ...           \n' == '        FOO   
      \n'
E         -         FOO         
E         +                                       FOO

tests/test_console.py:284: AssertionError
______________________________ test_justify_right ______________________________

    def test_justify_right():
        console = Console(file=io.StringIO(), force_terminal=True, width=20)
        console.print("FOO", justify="right")
>       assert console.file.getvalue() == "                 FOO\n"
E       AssertionError: assert '            ...        FOO\n' == '              
   FOO\n'
E         -                  FOO
E         +                                                                     
         FOO

tests/test_console.py:290: AssertionError
_________________________ test_justify_renderable_left _________________________

    def test_justify_renderable_left():
        console = Console(
            file=io.StringIO(), force_terminal=True, width=10, 
legacy_windows=False
        )
        console.print(Panel("FOO", expand=False, padding=0), justify="left")
>       assert console.file.getvalue() == "╭───╮     \n│FOO│     \n╰───╯     \n"
E       AssertionError: assert '╭───╮       ...           \n' == '╭───╮     
\n...n╰───╯     \n'
E         - ╭───╮     
E         - │FOO│     
E         - ╰───╯     
E         + ╭───╮                                                               
            
E         + │FOO│                                                               
            
E         + ╰───╯

tests/test_console.py:306: AssertionError
________________________ test_justify_renderable_center ________________________

    def test_justify_renderable_center():
        console = Console(
            file=io.StringIO(), force_terminal=True, width=10, 
legacy_windows=False
        )
        console.print(Panel("FOO", expand=False, padding=0), justify="center")
>       assert console.file.getvalue() == "  ╭───╮   \n  │FOO│   \n  ╰───╯   \n"
E       AssertionError: assert '            ...           \n' == '  ╭───╮   
\n...n  ╰───╯   \n'
E         -   ╭───╮   
E         -   │FOO│   
E         -   ╰───╯   
E         +                                      ╭───╮                          
            
E         +                                      │FOO│                          
            
E         +                                      ╰───╯

tests/test_console.py:314: AssertionError
________________________ test_justify_renderable_right _________________________

    def test_justify_renderable_right():
        console = Console(
            file=io.StringIO(), force_terminal=True, width=20, 
legacy_windows=False
        )
        console.print(Panel("FOO", expand=False, padding=0), justify="right")
>       assert (
            console.file.getvalue()
            == "               ╭───╮\n               │FOO│\n               
╰───╯\n"
        )
E       AssertionError: assert '            ...      ╰───╯\n' == '            
...      ╰───╯\n'
E         -                ╭───╮
E         -                │FOO│
E         -                ╰───╯
E         +                                                                     
       ╭───╮
E         +                                                                     
       │FOO│
E         +                                                                     
       ╰───╯

tests/test_console.py:322: AssertionError
__________________________________ test_bell ___________________________________

    def test_bell() -> None:
        console = Console(force_terminal=True)
        console.begin_capture()
        console.bell()
>       assert console.end_capture() == "\x07"
E       AssertionError: assert '' == '\x07'
E         - 

tests/test_console.py:412: AssertionError
_________________________________ test_screen __________________________________

    @pytest.mark.skipif(sys.platform == "win32", reason="does not run on 
windows")
    def test_screen():
        console = Console(color_system=None, force_terminal=True, 
force_interactive=True)
        with console.capture() as capture:
            with console.screen():
                console.print("Don't panic")
        expected = "\x1b[?1049h\x1b[H\x1b[?25lDon't panic\n\x1b[?1049l\x1b[?25h"
        result = capture.get()
        print(repr(result))
>       assert result == expected
E       assert "Don't panic\n" == '\x1b[?1049h\...049l\x1b[?25h'
E         + Don't panic
E         - [?1049h[?25lDon't panic
E         - [?1049l[?25h

tests/test_console.py:526: AssertionError
----------------------------- Captured stdout call -----------------------------
"Don't panic\n"
______________________________ test_screen_update ______________________________

    @pytest.mark.skipif(sys.platform == "win32", reason="does not run on 
windows")
    def test_screen_update():
        console = Console(width=20, height=4, color_system="truecolor", 
force_terminal=True)
        with console.capture() as capture:
            with console.screen() as screen:
                screen.update("foo", style="blue")
                screen.update("bar")
                screen.update()
        result = capture.get()
        print(repr(result))
        expected = "\x1b[?1049h\x1b[H\x1b[?25l\x1b[34mfoo\x1b[0m\x1b[34m        
         \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m                 
   \x1b[0m\n\x1b[34m                    \x1b[0m\x1b[34mbar\x1b[0m\x1b[34m       
          \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m                
    \x1b[0m\n\x1b[34m                    \x1b[0m\x1b[34mbar\x1b[0m\x1b[34m      
           \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m               
     \x1b[0m\n\x1b[34m                    \x1b[0m\x1b[?1049l\x1b[?25h"
>       assert result == expected
E       AssertionError: assert '\x1b[34mfoo\...      \x1b[0m' == 
'\x1b[?1049h\...049l\x1b[?25h'
E         - [?1049h[?25lfoo                 
E         ? -----------------
E         + foo                 
E                               
E                               
E                               bar                 
E                               ...
E         
E         ...Full output truncated (8 lines hidden), use '-vv' to show

tests/test_console.py:540: AssertionError
----------------------------- Captured stdout call -----------------------------
'\x1b[34mfoo\x1b[0m\x1b[34m                 \x1b[0m\n\x1b[34m                   
 \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m                    
\x1b[0m\x1b[34mbar\x1b[0m\x1b[34m                 \x1b[0m\n\x1b[34m             
       \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m                   
 \x1b[0m\x1b[34mbar\x1b[0m\x1b[34m                 \x1b[0m\n\x1b[34m            
        \x1b[0m\n\x1b[34m                    \x1b[0m\n\x1b[34m                  
  \x1b[0m'
_____________________________ test_growing_display _____________________________

    def test_growing_display() -> None:
        console = create_capture_console()
        console.begin_capture()
        with Live(console=console, auto_refresh=False) as live:
            display = ""
            for step in range(10):
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
        print(repr(output))
>       assert (
            output
            == "\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 
6\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 
7\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 
8\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n\x1b[?25h"
        )
E       AssertionError: assert 'Step 0\nStep...8\nStep 9\n\n' == 
'\x1b[?25lSte...\n\n\x1b[?25h'
E         - [?25lStep 0
E         - 

E         - Step 0
E         - Step 1
E         ?      ^
E         + Step 0
E         ?      ^...
E         
E         ...Full output truncated (74 lines hidden), use '-vv' to show

tests/test_live.py:49: AssertionError
----------------------------- Captured stdout call -----------------------------
'Step 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n'
________________________ test_growing_display_transient ________________________

    def test_growing_display_transient() -> None:
        console = create_capture_console()
        console.begin_capture()
        with Live(console=console, auto_refresh=False, transient=True) as live:
            display = ""
            for step in range(10):
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
>       assert (
            output
            == "\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 
6\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 
7\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 
8\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n\x1b[?25h\r\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K"
        )
E       AssertionError: assert '\n' == '\x1b[?25lSte...x1b[1A\x1b[2K'
E         Strings contain only whitespace, escaping them using repr()
E         - '\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\...
E         
E         ...Full output truncated (2 lines hidden), use '-vv' to show

tests/test_live.py:64: AssertionError
____________________ test_growing_display_overflow_ellipsis ____________________

    def test_growing_display_overflow_ellipsis() -> None:
        console = create_capture_console(height=5)
        console.begin_capture()
        with Live(
            console=console, auto_refresh=False, vertical_overflow="ellipsis"
        ) as live:
            display = ""
            for step in range(10):
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
>       assert (
            output
            == "\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\n                            ...                      
       \r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n\x1b[?25h"
        )
E       AssertionError: assert 'Step 0\nStep...8\nStep 9\n\n' == 
'\x1b[?25lSte...\n\n\x1b[?25h'
E         - [?25lStep 0
E         - 

E         - Step 0
E         - Step 1
E         ?      ^
E         + Step 0
E         ?      ^...
E         
E         ...Full output truncated (53 lines hidden), use '-vv' to show

tests/test_live.py:81: AssertionError
______________________ test_growing_display_overflow_crop ______________________

    def test_growing_display_overflow_crop() -> None:
        console = create_capture_console(height=5)
        console.begin_capture()
        with Live(console=console, auto_refresh=False, 
vertical_overflow="crop") as live:
            display = ""
            for step in range(10):
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
>       assert (
            output
            == "\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 
4\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 9\n\n\x1b[?25h"
        )
E       AssertionError: assert 'Step 0\nStep...8\nStep 9\n\n' == 
'\x1b[?25lSte...\n\n\x1b[?25h'
E         - [?25lStep 0
E         - 

E         - Step 0
E         - Step 1
E         ?      ^
E         + Step 0
E         ?      ^...
E         
E         ...Full output truncated (53 lines hidden), use '-vv' to show

tests/test_live.py:96: AssertionError
____________________ test_growing_display_overflow_visible _____________________

    def test_growing_display_overflow_visible() -> None:
        console = create_capture_console(height=5)
        console.begin_capture()
        with Live(console=console, auto_refresh=False, 
vertical_overflow="visible") as live:
            display = ""
            for step in range(10):
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
>       assert (
            output
            == "\x1b[?25lStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 
6\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 
7\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 
8\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n\x1b[?25h"
        )
E       AssertionError: assert 'Step 0\nStep...8\nStep 9\n\n' == 
'\x1b[?25lSte...\n\n\x1b[?25h'
E         - [?25lStep 0
E         - 

E         - Step 0
E         - Step 1
E         ?      ^
E         + Step 0
E         ?      ^...
E         
E         ...Full output truncated (74 lines hidden), use '-vv' to show

tests/test_live.py:111: AssertionError
____________________ test_growing_display_console_redirect _____________________

    def test_growing_display_console_redirect() -> None:
        console = create_capture_console()
        console.begin_capture()
        with Live(console=console, auto_refresh=False) as live:
            display = ""
            for step in range(10):
                console.print(f"Running step {step}")
                display += f"Step {step}\n"
                live.update(display, refresh=True)
        output = console.end_capture()
>       assert (
            output
            == "\x1b[?25lRunning step 0\n\r\x1b[2KStep 
0\n\r\x1b[2K\x1b[1A\x1b[2KRunning step 1\nStep 0\n\r\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning step 2\nStep 0\nStep 
1\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 0\nStep 1\nStep 
2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning step 3\nStep 
0\nStep 1\nStep 2\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning 
step 4\nStep 0\nStep 1\nStep 2\nStep 
3\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep 
0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning
 step 5\nStep 0\nStep 1\nStep 2\nStep 3\nStep 
4\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning
 step 6\nStep 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 
5\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 
6\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning
 step 7\nStep 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 
6\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 
7\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning
 step 8\nStep 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 
7\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 
8\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KRunning
 step 9\nStep 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 
8\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2KStep
 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6\nStep 7\nStep 8\nStep 
9\n\n\x1b[?25h"
        )
E       AssertionError: assert 'Running step...8\nStep 9\n\n' == 
'\x1b[?25lRun...\n\n\x1b[?25h'
E         - [?25lRunning step 0
E         ? ------
E         + Running step 0
E         - 

E         - Step 0
E         - 

E         - Running step 1...
E         
E         ...Full output truncated (147 lines hidden), use '-vv' to show

tests/test_live.py:143: AssertionError
_______________________________ test_live_screen _______________________________

    def test_live_screen() -> None:
        console = create_capture_console(width=20, height=5)
        console.begin_capture()
        with Live(Text("foo"), screen=True, console=console, 
auto_refresh=False) as live:
            live.refresh()
        result = console.end_capture()
        print(repr(result))
        expected = "\x1b[?1049h\x1b[H\x1b[?25l\x1b[Hfoo                 \n      
              \n                    \n                    \n                    
\x1b[Hfoo                 \n                    \n                    \n        
            \n                    \x1b[?25h\x1b[?1049l"
>       assert result == expected
E       AssertionError: assert '' == '\x1b[?1049h\...5h\x1b[?1049l'
E         - [?1049h[?25lfoo                 
E         -                     
E         -                     
E         -                     
E         -                     foo                 
E         -                     
E         -                     ...
E         
E         ...Full output truncated (3 lines hidden), use '-vv' to show

tests/test_live.py:172: AssertionError
----------------------------- Captured stdout call -----------------------------
''
________________________________ test_exception ________________________________

    @skip_win
    def test_exception():
        console = Console(
            file=io.StringIO(), force_terminal=True, width=140, 
color_system="truecolor"
        )
        handler_with_tracebacks = RichHandler(
            console=console, enable_link_path=False, rich_tracebacks=True
        )
        log.addHandler(handler_with_tracebacks)
    
        try:
            1 / 0
        except ZeroDivisionError:
            log.exception("message")
    
        render = handler_with_tracebacks.console.file.getvalue()
        print(render)
    
        assert "ZeroDivisionError" in render
        assert "message" in render
>       assert "division by zero" in render
E       AssertionError: assert 'division by zero' in '\x1b[2;36m[02/22/21 
11:41:25]\x1b[0m\x1b[2;36m \x1b[0m\x1b[1;31mERROR   \x1b[0m message             
             \x1b...0mdivision by                     \n                        
     zero                                               \n'

tests/test_logging.py:48: AssertionError
----------------------------- Captured stdout call -----------------------------
[02/22/21 11:41:25] ERROR    message           
               test_logging.py:41
                             ╭─ Traceback 
(most recent call─╮                   
                             │ /<<BUILDDIR>>/rich-9.11 
│                   
                             │ 
.0/tests/test_logging.py:39  │          
         
                             │ in test_exception            
│                   
                             │                              │ 
                  
                             │   36 │   
log.addHandler(hand │                   
                             │   37 │                  
     │                   
                             │   38 │   try:  
              │                   
                             │ ❱ 39 │   │   
1 / 0           │                   
                             │   40 │   
except ZeroDivision │                   
                             │   41 │   │   
log.exception(" │                   
                             ╰──────────────────────────────╯          
         
                             ZeroDivisionError: division by          
           
                             zero                                               

------------------------------ Captured log call -------------------------------
ERROR    rich:test_logging.py:41 message
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/tests/test_logging.py", line 39, in test_exception
    1 / 0
ZeroDivisionError: division by zero
_______________________ test_exception_with_extra_lines ________________________

    def test_exception_with_extra_lines():
        console = Console(
            file=io.StringIO(), force_terminal=True, width=140, 
color_system="truecolor"
        )
        handler_extra_lines = RichHandler(
            console=console,
            enable_link_path=False,
            markup=True,
            rich_tracebacks=True,
            tracebacks_extra_lines=5,
        )
        log.addHandler(handler_extra_lines)
    
        try:
            1 / 0
        except ZeroDivisionError:
            log.exception("message")
    
        render = handler_extra_lines.console.file.getvalue()
        print(render)
    
        assert "ZeroDivisionError" in render
        assert "message" in render
>       assert "division by zero" in render
E       AssertionError: assert 'division by zero' in '\x1b[2;36m[02/22/21 
11:41:25]\x1b[0m\x1b[2;36m \x1b[0m\x1b[1;31mERROR   \x1b[0m message             
             \x1b...0mdivision by                     \n                        
     zero                                               \n'

tests/test_logging.py:74: AssertionError
----------------------------- Captured stdout call -----------------------------
[02/22/21 11:41:25] ERROR    message           
               test_logging.py:67
                             ╭─ Traceback 
(most recent call─╮                   
                             │ /<<BUILDDIR>>/rich-9.11 
│                   
                             │ 
.0/tests/test_logging.py:65  │          
         
                             │ in test_exception_with_extra 
│                   
                             │ _lines                       
│                   
                             │                              │ 
                  
                             │   60 │   │   
tracebacks_extr │                   
                             │   61 │   )              
     │                   
                             │   62 │   
log.addHandler(hand │                   
                             │   63 │                  
     │                   
                             │   64 │   try:  
              │                   
                             │ ❱ 65 │   │   
1 / 0           │                   
                             │   66 │   
except ZeroDivision │                   
                             │   67 │   │   
log.exception(" │                   
                             │   68 │                  
     │                   
                             │   69 │   render = 
handler_ex │                   
                             │   70 │   
print(render)       │                   
                             ╰──────────────────────────────╯          
         
                             ZeroDivisionError: division by          
           
                             zero                                               

------------------------------ Captured log call -------------------------------
ERROR    rich:test_logging.py:67 message
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/tests/test_logging.py", line 65, in 
test_exception_with_extra_lines
    1 / 0
ZeroDivisionError: division by zero
_______________________________ test_expand_bar ________________________________

    def test_expand_bar() -> None:
        console = Console(
            file=io.StringIO(),
            force_terminal=True,
            width=10,
            color_system="truecolor",
            legacy_windows=False,
        )
        progress = Progress(
            BarColumn(bar_width=None),
            console=console,
            get_time=lambda: 1.0,
            auto_refresh=False,
        )
        progress.add_task("foo")
        with progress:
            pass
        expected = 
"\x1b[?25l\x1b[38;5;237m━━━━━━━━━━\x1b[0m\r\x1b[2K\x1b[38;5;237m━━━━━━━━━━\x1b[0m\n\x1b[?25h"
        render_result = console.file.getvalue()
        print("RESULT\n", repr(render_result))
        print("EXPECTED\n", repr(expected))
>       assert render_result == expected
E       AssertionError: assert '\x1b[38;5;23...━━━━\x1b[0m\n' == 
'\x1b[?25l\x1...0m\n\x1b[?25h'
E         + 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
E         - [?25l━━━━━━━━━━

E         - ━━━━━━━━━━
E         - [?25h

tests/test_progress.py:193: AssertionError
----------------------------- Captured stdout call -----------------------------
RESULT
 
'\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\n'
EXPECTED
 
'\x1b[?25l\x1b[38;5;237m━━━━━━━━━━\x1b[0m\r\x1b[2K\x1b[38;5;237m━━━━━━━━━━\x1b[0m\n\x1b[?25h'
_________________________________ test_render __________________________________

    def test_render() -> None:
        expected = "\x1b[?25lfoo  
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\nbar  
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 53%\x1b[0m \x1b[36m-:--:--\x1b[0m\nfoo2 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m 
\x1b[36m0:00:00\x1b[0m\r\x1b[2K\x1b[1A\x1b[2K\x1b[1A\x1b[2Kfoo  
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\nbar  
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 53%\x1b[0m \x1b[36m-:--:--\x1b[0m\nfoo2 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h"
        render_result = render_progress()
        print(repr(render_result))
>       assert render_result == expected
E       AssertionError: assert 'foo  \x1b[38...0:00\x1b[0m\n' == 
'\x1b[?25lfoo...0m\n\x1b[?25h'
E         - [?25lfoo  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
  0% -:--:--
E         ? ------
E         + foo  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   
0% -:--:--
E         - bar  
━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━
  53% -:--:--
E         - foo2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00

E         - foo  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% 
-:--:--
E           bar  ━━━━━━━...
E         
E         ...Full output truncated (3 lines hidden), use '-vv' to show

tests/test_progress.py:200: AssertionError
----------------------------- Captured stdout call -----------------------------
'foo  \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\nbar  
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 53%\x1b[0m \x1b[36m-:--:--\x1b[0m\nfoo2 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n'
__________________________________ test_track __________________________________

    def test_track() -> None:
    
        console = Console(
            file=io.StringIO(),
            force_terminal=True,
            width=60,
            color_system="truecolor",
            legacy_windows=False,
        )
        test = ["foo", "bar", "baz"]
        expected_values = iter(test)
        for value in track(
            test, "test", console=console, auto_refresh=False, 
get_time=MockClock(auto=True)
        ):
            assert value == next(expected_values)
        result = console.file.getvalue()
        print(repr(result))
        expected = "\x1b[?25l\r\x1b[2Ktest 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 33%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;2;249;38;114m╸\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 67%\x1b[0m \x1b[36m0:00:06\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h"
        print("--")
        print("RESULT:")
        print(result)
        print(repr(result))
        print("EXPECTED:")
        print(expected)
        print(repr(expected))
    
>       assert result == expected
E       AssertionError: assert 'test \x1b[38...0:00\x1b[0m\n' == 
'\x1b[?25l\r\...0m\n\x1b[?25h'
E         - [?25l

E         - test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
  0% -:--:--

E         - test 
━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━
  33% -:--:--

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━
  67% 0:00:06

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 
0:00:00

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

tests/test_progress.py:229: AssertionError
----------------------------- Captured stdout call -----------------------------
'test \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n'
--
RESULT:
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00

'test \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n'
EXPECTED:
[?25l
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% 
-:--:--
test 
━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━
  33% -:--:--
test 
━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━
  67% 0:00:06
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00
[?25h
'\x1b[?25l\r\x1b[2Ktest 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 33%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;2;249;38;114m╸\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 67%\x1b[0m \x1b[36m0:00:06\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h'
_____________________________ test_progress_track ______________________________

    def test_progress_track() -> None:
        console = Console(
            file=io.StringIO(),
            force_terminal=True,
            width=60,
            color_system="truecolor",
            legacy_windows=False,
        )
        progress = Progress(
            console=console, auto_refresh=False, get_time=MockClock(auto=True)
        )
        test = ["foo", "bar", "baz"]
        expected_values = iter(test)
        with progress:
            for value in progress.track(test, description="test"):
                assert value == next(expected_values)
        result = console.file.getvalue()
        print(repr(result))
        expected = "\x1b[?25l\r\x1b[2Ktest 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 33%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;2;249;38;114m╸\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 67%\x1b[0m \x1b[36m0:00:06\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h"
    
        print(expected)
        print(repr(expected))
        print(result)
        print(repr(result))
    
>       assert result == expected
E       AssertionError: assert 'test \x1b[38...0:00\x1b[0m\n' == 
'\x1b[?25l\r\...0m\n\x1b[?25h'
E         - [?25l

E         - test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
  0% -:--:--

E         - test 
━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━
  33% -:--:--

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━
  67% 0:00:06

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 
0:00:00

E         - test 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

tests/test_progress.py:261: AssertionError
----------------------------- Captured stdout call -----------------------------
'test \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n'
[?25l
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% 
-:--:--
test 
━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━
  33% -:--:--
test 
━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━
  67% 0:00:06
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00
[?25h
'\x1b[?25l\r\x1b[2Ktest 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m  
0%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 33%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;2;249;38;114m╸\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━\x1b[0m
 \x1b[35m 67%\x1b[0m \x1b[36m0:00:06\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\r\x1b[2Ktest 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h'
test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
100% 0:00:00

'test \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n'
_________________________________ test_columns _________________________________

    def test_columns() -> None:
    
        console = Console(
            file=io.StringIO(),
            force_terminal=True,
            width=80,
            log_time_format="[TIME]",
            color_system="truecolor",
            legacy_windows=False,
            log_path=False,
        )
        progress = Progress(
            "test",
            TextColumn("{task.description}"),
            BarColumn(bar_width=None),
            TimeRemainingColumn(),
            TimeElapsedColumn(),
            FileSizeColumn(),
            TotalFileSizeColumn(),
            DownloadColumn(),
            TransferSpeedColumn(),
            transient=True,
            console=console,
            auto_refresh=False,
            get_time=MockClock(),
        )
        task1 = progress.add_task("foo", total=10)
        task2 = progress.add_task("bar", total=7)
        with progress:
            for n in range(4):
                progress.advance(task1, 3)
                progress.advance(task2, 4)
            print("foo")
            console.log("hello")
            console.print("world")
            progress.refresh()
        from .render import replace_link_ids
    
        result = replace_link_ids(console.file.getvalue())
        print(repr(result))
        expected = "\x1b[?25ltest foo 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:37\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m 
\x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:36\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kfoo\ntest foo 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:37\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m 
\x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:36\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m0/7 bytes \x1b[0m 
\x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2K\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m 
\x1b[0mhello                                                                    
\ntest foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m 
\x1b[36m-:--:--\x1b[0m \x1b[33m0:00:37\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 
bytes\x1b[0m \x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:36\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Kworld\ntest 
foo \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:37\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m 
\x1b[32m0/10 bytes\x1b[0m \x1b[31m?\x1b[0m\ntest bar 
\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m-:--:--\x1b[0m 
\x1b[33m0:00:36\x1b[0m \x1b[32m0 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m0/7 bytes \x1b[0m \x1b[31m?\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Ktest foo 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m 
\x1b[33m0:01:00\x1b[0m \x1b[32m12 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m 
\x1b[32m12/10 bytes\x1b[0m \x1b[31m1 byte/s\x1b[0m\ntest bar 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m 
\x1b[33m0:00:45\x1b[0m \x1b[32m16 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m16/7 bytes \x1b[0m \x1b[31m1 byte/s\x1b[0m\r\x1b[2K\x1b[1A\x1b[2Ktest 
foo \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m 
\x1b[33m0:01:00\x1b[0m \x1b[32m12 bytes\x1b[0m \x1b[32m10 bytes\x1b[0m 
\x1b[32m12/10 bytes\x1b[0m \x1b[31m1 byte/s\x1b[0m\ntest bar 
\x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━\x1b[0m \x1b[36m0:00:00\x1b[0m 
\x1b[33m0:00:45\x1b[0m \x1b[32m16 bytes\x1b[0m \x1b[32m7 bytes \x1b[0m 
\x1b[32m16/7 bytes \x1b[0m \x1b[31m1 
byte/s\x1b[0m\n\x1b[?25h\r\x1b[1A\x1b[2K\x1b[1A\x1b[2K"
>       assert result == expected
E       AssertionError: assert 'foo\n\x1b[2;...  \nworld\n\n' == 
'\x1b[?25ltes...x1b[1A\x1b[2K'
E         + foo
E         - [?25ltest foo ━━━━━━━━━━━━━━━━━━━━━━━━━ 
-:--:-- 0:00:37 0 bytes 10 bytes 0/10 
bytes ?
E         - test bar ━━━━━━━━━━━━━━━━━━━━━━━━━ -:--:-- 
0:00:36 0 bytes 7 bytes  0/7 bytes  
?

E         - foo
E         - test foo ━━━━━━━━━━━━━━━━━━━━━━━━━ -:--:-- 
0:00:37 0 bytes 10 bytes 0/10 bytes 
?
E         - test bar ━━━━━━━━━━━━━━━━━━━━━━━━━ -:--:-- 
0:00:36 0 b...
E         
E         ...Full output truncated (17 lines hidden), use '-vv' to show

tests/test_progress.py:309: AssertionError
----------------------------- Captured stdout call -----------------------------
'foo\n\x1b[2;36m[TIME]\x1b[0m\x1b[2;36m \x1b[0mhello                            
                                        \nworld\n\n'
__________________________ test_progress_max_refresh ___________________________

    def test_progress_max_refresh() -> None:
        """Test max_refresh argment."""
        time = 0.0
    
        def get_time() -> float:
            nonlocal time
            try:
                return time
            finally:
                time = time + 1.0
    
        console = Console(
            color_system=None, width=80, legacy_windows=False, 
force_terminal=True
        )
        column = TextColumn("{task.description}")
        column.max_refresh = 3
        progress = Progress(
            column,
            get_time=get_time,
            auto_refresh=False,
            console=console,
        )
        console.begin_capture()
        with progress:
            task_id = progress.add_task("start")
            for tick in range(6):
                progress.update(task_id, description=f"tick {tick}")
                progress.refresh()
        result = console.end_capture()
        print(repr(result))
>       assert (
            result
            == "\x1b[?25l\r\x1b[2Kstart\r\x1b[2Kstart\r\x1b[2Ktick 
1\r\x1b[2Ktick 1\r\x1b[2Ktick 3\r\x1b[2Ktick 3\r\x1b[2Ktick 5\r\x1b[2Ktick 
5\n\x1b[?25h"
        )
E       AssertionError: assert 'tick 5\n' == '\x1b[?25l\r\... 5\n\x1b[?25h'
E         - [?25l

E         - start

E         - start

E         - tick 1

E         - tick 1

E         - tick 3

E         - tick 3
...
E         
E         ...Full output truncated (6 lines hidden), use '-vv' to show

tests/test_progress.py:421: AssertionError
----------------------------- Captured stdout call -----------------------------
'tick 5\n'
__________________________________ test_rule ___________________________________

    def test_rule():
        console = Console(
            width=16, file=io.StringIO(), force_terminal=True, 
legacy_windows=False
        )
        console.print(Rule())
        console.print(Rule("foo"))
        console.rule(Text("foo", style="bold"))
        console.rule("foobarbazeggfoobarbazegg")
        expected = "\x1b[92m────────────────\x1b[0m\n"
        expected += "\x1b[92m───── \x1b[0mfoo\x1b[92m ──────\x1b[0m\n"
        expected += "\x1b[92m───── \x1b[0m\x1b[1mfoo\x1b[0m\x1b[92m 
──────\x1b[0m\n"
        expected += "\x1b[92m─ \x1b[0mfoobarbazeg…\x1b[92m ─\x1b[0m\n"
    
        result = console.file.getvalue()
>       assert result == expected
E       AssertionError: assert '────────────...───────────\n' == 
'\x1b[92m────...2m ─\x1b[0m\n'
E         - ────────────────
E         - ───── foo ──────
E         - ───── foo ──────
E         - ─ foobarbazeg… ─
E         + 
────────────────────────────────────────────────────────────────────────────────
E         + ───────────────────────────────────── foo 
──────────────────────────────────────
E         + ───────────────────────────────────── foo 
──────────────────────────────────────...
E         
E         ...Full output truncated (2 lines hidden), use '-vv' to show

tests/test_rule.py:24: AssertionError
________________________________ test_rule_cjk _________________________________

    def test_rule_cjk():
        console = Console(
            width=16,
            file=io.StringIO(),
            force_terminal=True,
            color_system=None,
            legacy_windows=False,
        )
        console.rule("欢迎!")
        expected = "──── 欢迎! ────\n"
>       assert console.file.getvalue() == expected
E       AssertionError: assert '────────────...───────────\n' == '──── 欢迎! 
────\n'
E         - ──── 欢迎! ────
E         + ──────────────────────────────────── 欢迎! 
────────────────────────────────────

tests/test_rule.py:56: AssertionError
_______________________________ test_characters ________________________________

    def test_characters():
        console = Console(
            width=16,
            file=io.StringIO(),
            force_terminal=True,
            color_system=None,
            legacy_windows=False,
        )
        console.rule(characters="+*")
        console.rule("foo", characters="+*")
        console.print(Rule(characters=".,"))
        expected = "+*+*+*+*+*+*+*+*\n"
        expected += "+*+*+ foo +*+*+*\n"
        expected += ".,.,.,.,.,.,.,.,\n"
>       assert console.file.getvalue() == expected
E       AssertionError: assert '+*+*+*+*+*+*...,.,.,.,.,.,\n' == 
'+*+*+*+*+*+*...,.,.,.,.,.,\n'
E         - +*+*+*+*+*+*+*+*
E         - +*+*+ foo +*+*+*
E         - .,.,.,.,.,.,.,.,
E         + 
+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
E         + +*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+ foo 
+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*
E         + 
.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,

tests/test_rule.py:73: AssertionError
_________________________________ test_styled __________________________________

    def test_styled():
        styled_foo = Styled("foo", "on red")
        console = Console(file=io.StringIO(), force_terminal=True)
        assert Measurement.get(console, styled_foo, 80) == Measurement(3, 3)
        console.print(styled_foo)
        result = console.file.getvalue()
        expected = "\x1b[41mfoo\x1b[0m\n"
>       assert result == expected
E       AssertionError: assert 'foo\n' == '\x1b[41mfoo\x1b[0m\n'
E         - foo
E         + foo

tests/test_styled.py:15: AssertionError
______________________________ test_render_table _______________________________

    def test_render_table():
        expected = " test table \n┏━━━━━━┳━┳━┓\n┃ foo  ┃ ┃ ┃\n┡━━━━━━╇━╇━┩\n│ 
Ave… │ │ │\n└──────┴─┴─┘\n   table    \n  caption   \n   test table    
\n┏━━━━━━━━━━━┳━┳━┓\n┃ foo       ┃ ┃ ┃\n┡━━━━━━━━━━━╇━╇━┩\n│ Averlong… │ │ 
│\n└───────────┴─┴─┘\n  table caption  \n      test table      
\n┏━━━━━━━━━━━━━━━━┳━┳━┓\n┃ foo            ┃ ┃ ┃\n┡━━━━━━━━━━━━━━━━╇━╇━┩\n│ 
Averlongwordg… │ │ │\n└────────────────┴─┴─┘\n    table caption     \n        
test table         \n┏━━━━━━━━━━━━━━━━━━━━━┳━┳━┓\n┃ foo                 ┃ ┃ 
┃\n┡━━━━━━━━━━━━━━━━━━━━━╇━╇━┩\n│ Averlongwordgoeshe… │ │ 
│\n└─────────────────────┴─┴─┘\n       table caption       \n          test 
table          \n┏━━━━━━━━━━━━━━━━━━━━━━┳━━┳━━┓\n┃ foo                  ┃  ┃  
┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━╇━━┩\n│ Averlongwordgoeshere │  │  
│\n└──────────────────────┴──┴──┘\n        table caption         \n            
test table             \n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━┓\n┃ foo             
     ┃ bar ┃ b… ┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━┩\n│ Averlongwordgoeshere 
│ ba… │    │\n│                      │ pa… │    
│\n└──────────────────────┴─────┴────┘\n           table caption           \n   
            test table               
\n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━┓\n┃ foo                  ┃   bar   ┃ 
baz ┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━┩\n│ Averlongwordgoeshere │ 
banana  │     │\n│                      │ pancak… │     
│\n└──────────────────────┴─────────┴─────┘\n             table caption         
     \n                 test table                  
\n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━┓\n┃ foo                  ┃     
bar      ┃ baz ┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━┩\n│ 
Averlongwordgoeshere │    banana    │     │\n│                      │   
pancakes   │     │\n└──────────────────────┴──────────────┴─────┘\n             
   table caption                \n                    test table                
    \n┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━┓\n┃ foo                 
  ┃       bar        ┃ baz 
┃\n┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━┩\n│ Averlongwordgoeshere  
│ banana pancakes  │     
│\n└───────────────────────┴──────────────────┴─────┘\n                  table 
caption                   \n                      test table                    
   \n┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━┓\n┃ foo             
         ┃        bar         ┃ baz 
┃\n┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━┩\n│ 
Averlongwordgoeshere     │  banana pancakes   │     
│\n└──────────────────────────┴────────────────────┴─────┘\n                    
 table caption                     \n                   test table              
                 \n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┓            
\n┃ foo                  ┃       bar       ┃ baz ┃            
\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━┩            \n│ 
Averlongwordgoeshere │ banana pancakes │     │            
\n└──────────────────────┴─────────────────┴─────┘            \n                
 table caption                              \n                         test 
table                         \n      
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┓      \n      ┃ foo             
     ┃       bar       ┃ baz ┃      \n      
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━┩      \n      │ 
Averlongwordgoeshere │ banana pancakes │     │      \n      
└──────────────────────┴─────────────────┴─────┘      \n                       
table caption                        \n                               test 
table                   \n            
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┓\n            ┃ foo             
     ┃       bar       ┃ baz ┃\n            
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━┩\n            │ 
Averlongwordgoeshere │ banana pancakes │     │\n            
└──────────────────────┴─────────────────┴─────┘\n                             
table caption                  \n                        test table             
            \n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━━━━━━━┓\n┃ 
foo                  ┃       bar       ┃ baz ┃          
┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━━━┩\n│ 
Averlongwordgoeshere │ banana pancakes │     │          │\n│ Coffee             
  │                 │     │          │\n│ Coffee               │    Chocolate   
 │     │ cinnamon 
│\n└──────────────────────┴─────────────────┴─────┴──────────┘\n                
       table caption                       \n                        test table 
                        
\n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━━━━━━━┓\n┃ foo            
      ┃       bar       ┃ baz ┃          
┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━━━┩\n│ 
Averlongwordgoeshere │ banana pancakes │     │          
│\n├──────────────────────┼─────────────────┼─────┼──────────┤\n│ Coffee        
       │                 │     │          
│\n├──────────────────────┼─────────────────┼─────┼──────────┤\n│ Coffee        
       │    Chocolate    │     │ cinnamon 
│\n└──────────────────────┴─────────────────┴─────┴──────────┘\n                
       table caption                       \n                        test table 
                        
\n┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━━━━━━━┓\n┃ foo            
      ┃       bar       ┃ baz ┃          
┃\n┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━━━┩\n│ 
Averlongwordgoeshere │ banana pancakes │     │          
│\n├──────────────────────┼─────────────────┼─────┼──────────┤\n│ Coffee        
       │                 │     │          
│\n├──────────────────────┼─────────────────┼─────┼──────────┤\n│ Coffee        
       │    Chocolate    │     │ cinnamon 
│\n├──────────────────────┼─────────────────┼─────┼──────────┤\n│ total         
       │                 │     │          
│\n└──────────────────────┴─────────────────┴─────┴──────────┘\n                
       table caption                       \n                       test table  
                      \n foo                  ┃       bar       ┃ baz ┃         
 \n━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━━━\n 
Averlongwordgoeshere │ banana pancakes │     │          
\n──────────────────────┼─────────────────┼─────┼──────────\n Coffee            
   │                 │     │          
\n──────────────────────┼─────────────────┼─────┼──────────\n Coffee            
   │    Chocolate    │     │ cinnamon 
\n──────────────────────┼─────────────────┼─────┼──────────\n total             
   │                 │     │          \n                      table caption     
                 \n                       test table                        \n  
                    ┃                 ┃     ┃          \n foo                  
┃       bar       ┃ baz ┃          \n                      ┃                 ┃  
   ┃          \n━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━━━\n     
                 │                 │     │          \n Averlongwordgoeshere │ 
banana pancakes │     │          \n                      │                 │    
 │          \n──────────────────────┼─────────────────┼─────┼──────────\n       
               │                 │     │          \n Coffee               │     
            │     │          \n                      │                 │     │  
        \n──────────────────────┼─────────────────┼─────┼──────────\n           
           │                 │     │          \n Coffee               │    
Chocolate    │     │ cinnamon \n                      │                 │     │ 
         \n──────────────────────┼─────────────────┼─────┼──────────\n          
            │                 │     │          \n total                │        
         │     │          \n                      │                 │     │     
     \n                      table caption                      \n      test 
table       \n                 ┃ ┃ ┃ \n foo             ┃ ┃ ┃ \n                
 ┃ ┃ ┃ \n━━━━━━━━━━━━━━━━━╇━╇━╇━\n                 │ │ │ \n Averlongwordgo… │ │ 
│ \n                 │ │ │ \n─────────────────┼─┼─┼─\n                 │ │ │ \n 
Coffee          │ │ │ \n                 │ │ │ \n─────────────────┼─┼─┼─\n      
           │ │ │ \n Coffee          │ │ │ \n                 │ │ │ 
\n─────────────────┼─┼─┼─\n                 │ │ │ \n total           │ │ │ \n   
              │ │ │ \n     table caption     \n       test table       \n       
   ┃         ┃ ┃ \n foo      ┃   bar   ┃ ┃ \n          ┃         ┃ ┃ 
\n━━━━━━━━━━╇━━━━━━━━━╇━╇━\n          │         │ │ \n Averlon… │ banana… │ │ 
\n          │         │ │ \n──────────┼─────────┼─┼─\n          │         │ │ 
\n Coffee   │         │ │ \n          │         │ │ 
\n──────────┼─────────┼─┼─\n          │         │ │ \n Coffee   │ Chocol… │ │ 
\n          │         │ │ \n──────────┼─────────┼─┼─\n          │         │ │ 
\n total    │         │ │ \n          │         │ │ \n     table caption      
\n                         test table                         \nfoo             
         ┃        bar        ┃ baz┃         
\n━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━╇━━━━━━━━━\nAverlongwordgoeshere
     │  banana pancakes  │    │         \n                         │            
       │    │         \nCoffee                   │                   │    │     
    \n                         │                   │    │         \nCoffee      
             │     Chocolate     │    │cinnamon 
\n─────────────────────────┼───────────────────┼────┼─────────\ntotal           
         │                   │    │         \n                       table 
caption                        \n"
>       assert render_tables() == expected
E       AssertionError: assert ' test table ...           \n' == ' test table 
...           \n'
E         Skipping 2587 identical leading characters in diff, use -v to show
E         -           
E         +                               
E         - ┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┓            
E         + ┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┓                    
            
E         ?                                                             
++++++++++++++++++++
E         - ┃ foo                  ┃       bar       ┃ baz ┃            ...
E         
E         ...Full output truncated (175 lines hidden), use '-vv' to show

tests/test_table.py:84: AssertionError
=========================== short test summary info ============================
FAILED tests/test_align.py::test_align_right_style - AssertionError: assert '...
FAILED tests/test_console.py::test_dumb_terminal - assert None is not None
FAILED tests/test_console.py::test_show_cursor - AssertionError: assert 'foo\...
FAILED tests/test_console.py::test_clear - AssertionError: assert '' == '\x1b...
FAILED tests/test_console.py::test_control - AssertionError: assert 'BAR\n' =...
FAILED tests/test_console.py::test_justify_left - AssertionError: assert 'FOO...
FAILED tests/test_console.py::test_justify_center - AssertionError: assert ' ...
FAILED tests/test_console.py::test_justify_right - AssertionError: assert '  ...
FAILED tests/test_console.py::test_justify_renderable_left - AssertionError: ...
FAILED tests/test_console.py::test_justify_renderable_center - AssertionError...
FAILED tests/test_console.py::test_justify_renderable_right - AssertionError:...
FAILED tests/test_console.py::test_bell - AssertionError: assert '' == '\x07'
FAILED tests/test_console.py::test_screen - assert "Don't panic\n" == '\x1b[?...
FAILED tests/test_console.py::test_screen_update - AssertionError: assert '\x...
FAILED tests/test_live.py::test_growing_display - AssertionError: assert 'Ste...
FAILED tests/test_live.py::test_growing_display_transient - AssertionError: a...
FAILED tests/test_live.py::test_growing_display_overflow_ellipsis - Assertion...
FAILED tests/test_live.py::test_growing_display_overflow_crop - AssertionErro...
FAILED tests/test_live.py::test_growing_display_overflow_visible - AssertionE...
FAILED tests/test_live.py::test_growing_display_console_redirect - AssertionE...
FAILED tests/test_live.py::test_live_screen - AssertionError: assert '' == '\...
FAILED tests/test_logging.py::test_exception - AssertionError: assert 'divisi...
FAILED tests/test_logging.py::test_exception_with_extra_lines - AssertionErro...
FAILED tests/test_progress.py::test_expand_bar - AssertionError: assert '\x1b...
FAILED tests/test_progress.py::test_render - AssertionError: assert 'foo  \x1...
FAILED tests/test_progress.py::test_track - AssertionError: assert 'test \x1b...
FAILED tests/test_progress.py::test_progress_track - AssertionError: assert '...
FAILED tests/test_progress.py::test_columns - AssertionError: assert 'foo\n\x...
FAILED tests/test_progress.py::test_progress_max_refresh - AssertionError: as...
FAILED tests/test_rule.py::test_rule - AssertionError: assert '────────────.....
FAILED tests/test_rule.py::test_rule_cjk - AssertionError: assert '──────────...
FAILED tests/test_rule.py::test_characters - AssertionError: assert '+*+*+*+*...
FAILED tests/test_styled.py::test_styled - AssertionError: assert 'foo\n' == ...
FAILED tests/test_table.py::test_render_table - AssertionError: assert ' test...
================== 34 failed, 429 passed, 1 skipped in 6.05s ===================
E: pybuild pybuild:353: 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.9 
returned exit code 13
make[1]: *** [debian/rules:12: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

--- End Message ---
--- Begin Message ---
Source: rich
Source-Version: 11.2.0-1
Done: Sandro Tosi <[email protected]>

We believe that the bug you reported is fixed in the latest version of
rich, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Sandro Tosi <[email protected]> (supplier of updated rich package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sun, 27 Feb 2022 00:19:34 -0500
Source: rich
Architecture: source
Version: 11.2.0-1
Distribution: unstable
Urgency: medium
Maintainer: Sandro Tosi <[email protected]>
Changed-By: Sandro Tosi <[email protected]>
Closes: 983326 1006042
Changes:
 rich (11.2.0-1) unstable; urgency=medium
 .
   * New upstream release; Closes: #1006042, #983326
   * debian/copyright
     - extend packaging copyright years
Checksums-Sha1:
 41da4ea01f22122fc33bf954d7ad9fcc41a66a9c 2143 rich_11.2.0-1.dsc
 fa5b12e1d030d8d15264d588c3072ac3449243ae 15630892 rich_11.2.0.orig.tar.xz
 95901121a307eb63362cf6ade57d73cc55395a13 3280 rich_11.2.0-1.debian.tar.xz
 7dfaf6536d0e89d53c894f51cfff8f7bb375be56 8612 rich_11.2.0-1_source.buildinfo
Checksums-Sha256:
 723364903790348cd381f6ffeea8cf22465eeae48c57f0fc2b8fb0d15ca0a257 2143 
rich_11.2.0-1.dsc
 9878562a86b437210f12cbd93a9da8aed238a7d1871b49c7e2bf625a1573d3c4 15630892 
rich_11.2.0.orig.tar.xz
 e6b6b36c550c557f03392ac29e7afa1f4982a573b488601c2e74687ea4b1675c 3280 
rich_11.2.0-1.debian.tar.xz
 5bd3835026537fa0efa19dfe26fd8677b227e2a341c5d5a6f613923b0c026e15 8612 
rich_11.2.0-1_source.buildinfo
Files:
 b7b466625738da62014dc50a9e66e0b3 2143 python optional rich_11.2.0-1.dsc
 dce77e698ef90cdf37e57b99a1986cde 15630892 python optional 
rich_11.2.0.orig.tar.xz
 bcf1aca2bc7afd9fb1458f8e391becbc 3280 python optional 
rich_11.2.0-1.debian.tar.xz
 81b40a281e510c7376c3def4e428a26e 8612 python optional 
rich_11.2.0-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEufrTGSrz5KUwnZ05h588mTgBqU8FAmIbCfwACgkQh588mTgB
qU9QuA//b5WHaImASBGKpYETDB7+GppqJtDFvrN2GE2KMlvZaBI2FOogCu+tmViW
OptctwMPs5Cf5Qny4+mAoE9DmU0L5YN01OyDzzwXToTwpA5aTy09EmF/Vu4XK31q
E5PK9M+6RWl1KFWfOyvZGwfR2x6TT6yU8j7ZFjbDCSeNvkVWavZToUlCwahlLopK
3uPaA0cbgv2/MqTrgEIB8sMIT26XKRk/N0W50ThJGdwODrHWISp32CaWI30jwmqZ
qAUAg2rVma7Mvxwu2ZWWFLdACecgyhqJuHxz42ykhzH996QhmaKnePzeibk5Iuq4
H2wFG7aBrCy4Boxz63BIdnpE/fPpYguIrcKQ6I3c19PI4aEbZFxqzXLp89o1Z7JF
WrlUOjFu5FzKXdODIBqX4tkn152mU5IXBrPPkjRqGzzeNyNHsL5QC31BBcnPdNS4
lpnVu24Ly2w8n44VGQ9ZvxQ2dFdondRq9oInZq5jH7LY/68U6LCY0jLjuwjs2FzJ
hkbBysrdD6P6aAvNIQIhRPf5l2YkXpqpXeMAPkGXgRq0vS41qe8lLjzelSdCkKSQ
i2RXouUyVOaBB2P7b5sPQmHYtpjgtuCiCP5ZrmXj6bTOhd/PHVe5yDc7wyA9UfTw
GJOIfBey7dvNS25zqLS8bPqVT0nk+cKDGkaESOWoTKEJMFwEabs=
=NOhF
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to