Source: rich
Version: 13.3.1-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20231212 ftbfs-trixie
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:310: PYTHONPATH=/<<PKGBUILDDIR>> python3.12 -m pytest
> ============================= test session starts
> ==============================
> platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pyproject.toml
> testpaths: tests
> collected 791 items
>
> tests/test_align.py ................ [
> 2%]
> tests/test_ansi.py .. [
> 2%]
> tests/test_bar.py ....... [
> 3%]
> tests/test_block_bar.py .... [
> 3%]
> tests/test_box.py ...... [
> 4%]
> tests/test_card.py . [
> 4%]
> tests/test_cells.py ... [
> 4%]
> tests/test_color.py ................. [
> 7%]
> tests/test_color_triplet.py ... [
> 7%]
> tests/test_columns.py . [
> 7%]
> tests/test_columns_align.py . [
> 7%]
> tests/test_console.py .................................................. [
> 14%]
> ............................................... [
> 19%]
> tests/test_constrain.py . [
> 20%]
> tests/test_containers.py .... [
> 20%]
> tests/test_control.py ....... [
> 21%]
> tests/test_emoji.py ...... [
> 22%]
> tests/test_file_proxy.py ... [
> 22%]
> tests/test_filesize.py .. [
> 22%]
> tests/test_getfileno.py ... [
> 23%]
> tests/test_highlighter.py .............................................. [
> 29%]
> ................................. [
> 33%]
> tests/test_inspect.py ...F....FFF.................................. [
> 38%]
> tests/test_json.py . [
> 39%]
> tests/test_jupyter.py ... [
> 39%]
> tests/test_layout.py ...... [
> 40%]
> tests/test_live.py .......... [
> 41%]
> tests/test_live_render.py .... [
> 41%]
> tests/test_log.py ... [
> 42%]
> tests/test_logging.py .... [
> 42%]
> tests/test_markdown.py .. [
> 43%]
> tests/test_markdown_no_hyperlinks.py . [
> 43%]
> tests/test_markup.py .................... [
> 45%]
> tests/test_measure.py .... [
> 46%]
> tests/test_null_file.py . [
> 46%]
> tests/test_padding.py ..... [
> 47%]
> tests/test_palette.py . [
> 47%]
> tests/test_panel.py .......... [
> 48%]
> tests/test_pick.py . [
> 48%]
> tests/test_pretty.py ...........................................F...... [
> 54%]
> tests/test_progress.py ...................................... [
> 59%]
> tests/test_prompt.py ...... [
> 60%]
> tests/test_protocol.py ...... [
> 61%]
> tests/test_ratio.py ....... [
> 62%]
> tests/test_repr.py ........ [
> 63%]
> tests/test_rich_print.py ....... [
> 63%]
> tests/test_rule.py ................ [
> 65%]
> tests/test_rule_in_table.py .... [
> 66%]
> tests/test_screen.py . [
> 66%]
> tests/test_segment.py ................................................. [
> 72%]
> tests/test_spinner.py ..... [
> 73%]
> tests/test_stack.py . [
> 73%]
> tests/test_status.py .. [
> 73%]
> tests/test_style.py ......................... [
> 76%]
> tests/test_styled.py . [
> 77%]
> tests/test_syntax.py ....................... [
> 80%]
> tests/test_table.py ............... [
> 81%]
> tests/test_text.py ..................................................... [
> 88%]
> .................................... [
> 93%]
> tests/test_theme.py ..... [
> 93%]
> tests/test_tools.py .... [
> 94%]
> tests/test_traceback.py ................... [
> 96%]
> tests/test_tree.py .....s.s. [
> 97%]
> tests/test_windows_renderer.py sssssssssssssssss
> [100%]
>
> =================================== FAILURES
> ===================================
> ________________ test_inspect_builtin_function_except_python311
> ________________
>
> @skip_py311
> @skip_pypy3
> def test_inspect_builtin_function_except_python311():
> # Pre-3.11 Python versions - print builtin has no signature available
> expected = (
> "╭────────── <built-in function print> ───────────╮\n"
> "│ def print(...) │\n"
> "│ │\n"
> "│ print(value, ..., sep=' ', end='\\n', │\n"
> "│ file=sys.stdout, flush=False) │\n"
> "│ │\n"
> "│ 29 attribute(s) not shown. Run │\n"
> "│ inspect(inspect) for options. │\n"
> "╰────────────────────────────────────────────────╯\n"
> )
> > assert render(print) == expected
> E AssertionError: assert '╭────────── ...──────────╯\n' == '╭──────────
> ...──────────╯\n'
> E Skipping 53 identical leading characters in diff, use -v to show
> E - def print(...) │
> E + def print(*args, sep=' ', end='\n', file=None, │
> E + │ flush=False): │
> E │ │
> E - │ print(value, ..., sep=' ', end='\n', │
> E - │ file=sys.stdout, flush=False) │...
> E
> E ...Full output truncated (9 lines hidden), use '-vv' to show
>
> tests/test_inspect.py:153: AssertionError
> ___________ test_inspect_integer_with_methods_python38_and_python39
> ____________
>
> @skip_py37
> @skip_py310
> @skip_py311
> def test_inspect_integer_with_methods_python38_and_python39():
> expected = (
> "╭──────────────── <class 'int'> ─────────────────╮\n"
> "│ int([x]) -> integer │\n"
> "│ int(x, base=10) -> integer │\n"
> "│ │\n"
> "│ denominator = 1 │\n"
> "│ imag = 0 │\n"
> "│ numerator = 1 │\n"
> "│ real = 1 │\n"
> "│ as_integer_ratio = def as_integer_ratio(): │\n"
> "│ Return integer ratio. │\n"
> "│ bit_length = def bit_length(): Number of │\n"
> "│ bits necessary to represent │\n"
> "│ self in binary. │\n"
> "│ conjugate = def conjugate(...) Returns │\n"
> "│ self, the complex conjugate │\n"
> "│ of any int. │\n"
> "│ from_bytes = def from_bytes(bytes, │\n"
> "│ byteorder, *, │\n"
> "│ signed=False): Return the │\n"
> "│ integer represented by the │\n"
> "│ given array of bytes. │\n"
> "│ to_bytes = def to_bytes(length, │\n"
> "│ byteorder, *, │\n"
> "│ signed=False): Return an │\n"
> "│ array of bytes representing │\n"
> "│ an integer. │\n"
> "╰────────────────────────────────────────────────╯\n"
> )
> > assert render(1, methods=True) == expected
> E AssertionError: assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 477 identical leading characters in diff, use -v to show
> E - Return integer ratio. │
> E + Return a pair of integers, │
> E + │ whose ratio is equal to the │
> E + │ original int. │
> E + │ bit_count = def bit_count(): Number of │
> E + │ ones in the binary │...
> E
> E ...Full output truncated (32 lines hidden), use '-vv' to show
>
> tests/test_inspect.py:245: AssertionError
> _______________ test_inspect_integer_with_methods_python310only
> ________________
>
> @skip_py37
> @skip_py38
> @skip_py39
> @skip_py311
> def test_inspect_integer_with_methods_python310only():
> expected = (
> "╭──────────────── <class 'int'> ─────────────────╮\n"
> "│ int([x]) -> integer │\n"
> "│ int(x, base=10) -> integer │\n"
> "│ │\n"
> "│ denominator = 1 │\n"
> "│ imag = 0 │\n"
> "│ numerator = 1 │\n"
> "│ real = 1 │\n"
> "│ as_integer_ratio = def as_integer_ratio(): │\n"
> "│ Return integer ratio. │\n"
> "│ bit_count = def bit_count(): Number of │\n"
> "│ ones in the binary │\n"
> "│ representation of the │\n"
> "│ absolute value of self. │\n"
> "│ bit_length = def bit_length(): Number of │\n"
> "│ bits necessary to represent │\n"
> "│ self in binary. │\n"
> "│ conjugate = def conjugate(...) Returns │\n"
> "│ self, the complex conjugate │\n"
> "│ of any int. │\n"
> "│ from_bytes = def from_bytes(bytes, │\n"
> "│ byteorder, *, │\n"
> "│ signed=False): Return the │\n"
> "│ integer represented by the │\n"
> "│ given array of bytes. │\n"
> "│ to_bytes = def to_bytes(length, │\n"
> "│ byteorder, *, │\n"
> "│ signed=False): Return an │\n"
> "│ array of bytes representing │\n"
> "│ an integer. │\n"
> "╰────────────────────────────────────────────────╯\n"
> )
> > assert render(1, methods=True) == expected
> E AssertionError: assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 477 identical leading characters in diff, use -v to show
> E - Return integer ratio. │
> E + Return a pair of integers, │
> E + │ whose ratio is equal to the │
> E + │ original int. │
> E │ bit_count = def bit_count(): Number of │
> E │ ones in the binary │...
> E
> E ...Full output truncated (32 lines hidden), use '-vv' to show
>
> tests/test_inspect.py:286: AssertionError
> ____________ test_inspect_integer_with_methods_python311_and_above
> _____________
>
> @skip_py37
> @skip_py38
> @skip_py39
> @skip_py310
> def test_inspect_integer_with_methods_python311_and_above():
> # to_bytes and from_bytes methods on int had minor signature change -
> # they now, as of 3.11, have default values for all of their
> parameters
> expected = (
> "╭──────────────── <class 'int'> ─────────────────╮\n"
> "│ int([x]) -> integer │\n"
> "│ int(x, base=10) -> integer │\n"
> "│ │\n"
> "│ denominator = 1 │\n"
> "│ imag = 0 │\n"
> "│ numerator = 1 │\n"
> "│ real = 1 │\n"
> "│ as_integer_ratio = def as_integer_ratio(): │\n"
> "│ Return integer ratio. │\n"
> "│ bit_count = def bit_count(): Number of │\n"
> "│ ones in the binary │\n"
> "│ representation of the │\n"
> "│ absolute value of self. │\n"
> "│ bit_length = def bit_length(): Number of │\n"
> "│ bits necessary to represent │\n"
> "│ self in binary. │\n"
> "│ conjugate = def conjugate(...) Returns │\n"
> "│ self, the complex conjugate │\n"
> "│ of any int. │\n"
> "│ from_bytes = def from_bytes(bytes, │\n"
> "│ byteorder='big', *, │\n"
> "│ signed=False): Return the │\n"
> "│ integer represented by the │\n"
> "│ given array of bytes. │\n"
> "│ to_bytes = def to_bytes(length=1, │\n"
> "│ byteorder='big', *, │\n"
> "│ signed=False): Return an │\n"
> "│ array of bytes representing │\n"
> "│ an integer. │\n"
> "╰────────────────────────────────────────────────╯\n"
> )
> > assert render(1, methods=True) == expected
> E AssertionError: assert '╭───────────...──────────╯\n' ==
> '╭───────────...──────────╯\n'
> E Skipping 477 identical leading characters in diff, use -v to show
> E - Return integer ratio. │
> E + Return a pair of integers, │
> E + │ whose ratio is equal to the │
> E + │ original int. │
> E │ bit_count = def bit_count(): Number of │
> E │ ones in the binary │...
> E
> E ...Full output truncated (23 lines hidden), use '-vv' to show
>
> tests/test_inspect.py:329: AssertionError
> ______________________________ test_attrs_broken
> _______________________________
>
> @skip_py310
> @skip_py311
> def test_attrs_broken():
> @attr.define
> class Foo:
> bar: int
>
> foo = Foo(1)
> del foo.bar
> result = pretty_repr(foo)
> print(repr(result))
> expected = "Foo(bar=AttributeError('bar'))"
> > assert result == expected
> E assert 'Foo(bar=Attr...te \'bar\'"))' ==
> "Foo(bar=Attr...Error('bar'))"
> E - Foo(bar=AttributeError('bar'))
> E + Foo(bar=AttributeError("'Foo' object has no attribute 'bar'"))
>
> tests/test_pretty.py:626: AssertionError
> ----------------------------- Captured stdout call
> -----------------------------
> 'Foo(bar=AttributeError("\'Foo\' object has no attribute \'bar\'"))'
> =========================== short test summary info
> ============================
> FAILED tests/test_inspect.py::test_inspect_builtin_function_except_python311
> FAILED
> tests/test_inspect.py::test_inspect_integer_with_methods_python38_and_python39
> FAILED tests/test_inspect.py::test_inspect_integer_with_methods_python310only
> FAILED
> tests/test_inspect.py::test_inspect_integer_with_methods_python311_and_above
> FAILED tests/test_pretty.py::test_attrs_broken - assert 'Foo(bar=Attr...te
> \'...
> ================== 5 failed, 767 passed, 19 skipped in 5.68s
> ===================
> E: pybuild pybuild:395: test: plugin custom failed with: exit code=1:
> PYTHONPATH=/<<PKGBUILDDIR>> python3.12 -m pytest
> I: pybuild base:310: PYTHONPATH=/<<PKGBUILDDIR>> python3.11 -m pytest
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pyproject.toml
> testpaths: tests
> collected 791 items
>
> tests/test_align.py ................ [
> 2%]
> tests/test_ansi.py .. [
> 2%]
> tests/test_bar.py ....... [
> 3%]
> tests/test_block_bar.py .... [
> 3%]
> tests/test_box.py ...... [
> 4%]
> tests/test_card.py . [
> 4%]
> tests/test_cells.py ... [
> 4%]
> tests/test_color.py ................. [
> 7%]
> tests/test_color_triplet.py ... [
> 7%]
> tests/test_columns.py . [
> 7%]
> tests/test_columns_align.py . [
> 7%]
> tests/test_console.py .................................................. [
> 14%]
> ............................................... [
> 19%]
> tests/test_constrain.py . [
> 20%]
> tests/test_containers.py .... [
> 20%]
> tests/test_control.py ....... [
> 21%]
> tests/test_emoji.py ...... [
> 22%]
> tests/test_file_proxy.py ... [
> 22%]
> tests/test_filesize.py .. [
> 22%]
> tests/test_getfileno.py ... [
> 23%]
> tests/test_highlighter.py .............................................. [
> 29%]
> ................................. [
> 33%]
> tests/test_inspect.py ...s....ss................................... [
> 38%]
> tests/test_json.py . [
> 39%]
> tests/test_jupyter.py ... [
> 39%]
> tests/test_layout.py ...... [
> 40%]
> tests/test_live.py .......... [
> 41%]
> tests/test_live_render.py .... [
> 41%]
> tests/test_log.py ... [
> 42%]
> tests/test_logging.py .... [
> 42%]
> tests/test_markdown.py .. [
> 43%]
> tests/test_markdown_no_hyperlinks.py . [
> 43%]
> tests/test_markup.py .................... [
> 45%]
> tests/test_measure.py .... [
> 46%]
> tests/test_null_file.py . [
> 46%]
> tests/test_padding.py ..... [
> 47%]
> tests/test_palette.py . [
> 47%]
> tests/test_panel.py .......... [
> 48%]
> tests/test_pick.py . [
> 48%]
> tests/test_pretty.py ...........................................s...... [
> 54%]
> tests/test_progress.py ...................................... [
> 59%]
> tests/test_prompt.py ...... [
> 60%]
> tests/test_protocol.py ...... [
> 61%]
> tests/test_ratio.py ....... [
> 62%]
> tests/test_repr.py ........ [
> 63%]
> tests/test_rich_print.py ....... [
> 63%]
> tests/test_rule.py ................ [
> 65%]
> tests/test_rule_in_table.py .... [
> 66%]
> tests/test_screen.py . [
> 66%]
> tests/test_segment.py ................................................. [
> 72%]
> tests/test_spinner.py ..... [
> 73%]
> tests/test_stack.py . [
> 73%]
> tests/test_status.py .. [
> 73%]
> tests/test_style.py ......................... [
> 76%]
> tests/test_styled.py . [
> 77%]
> tests/test_syntax.py ....................... [
> 80%]
> tests/test_table.py ............... [
> 81%]
> tests/test_text.py ..................................................... [
> 88%]
> .................................... [
> 93%]
> tests/test_theme.py ..... [
> 93%]
> tests/test_tools.py .... [
> 94%]
> tests/test_traceback.py ................... [
> 96%]
> tests/test_tree.py .....s.s. [
> 97%]
> tests/test_windows_renderer.py sssssssssssssssss
> [100%]
>
> ======================= 768 passed, 23 skipped in 5.44s
> ========================
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12
> 3.11" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2023/12/12/rich_13.3.1-2_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results
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 mark 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.