rich: FTBFS against python 3.15rc1

Maximiliano Curia <[email protected]>
Newsgroups gmane.linux.debian.devel.python
Message-ID <[email protected]>
Package: src:rich
Version: 15.0.0-1
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid

Hi!

While rebuilding the python related packages against the Python 3.15rc1
version we found that rich fails to build from source [1].

The failures are caused by the tests that are being skipped for all the
newer python versions. I prepared a patch that adds the skips for py315,
but I think that upstream needs to improve the tests or drop them. I'm
attaching the patch. If possible, please have a talk about this with
upstream.

I applied the fix in the sandbox [2] to be able to build the packages
that depend on rich, please consider applying the patch to support the
upcoming 3.15 version.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/work-request/1118900/
[2]: https://debusine.debian.net/debian/r-python-python3.15/
-- 
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
py315.patch (text/x-diff, 2.7 KB)
Description: Fix tests for Python 3.15
---
 tests/test_inspect.py | 10 ++++++++++
 tests/test_pretty.py  |  5 +++++
 2 files changed, 15 insertions(+)

diff --git a/tests/test_inspect.py b/tests/test_inspect.py
index d6972fb5..7abca37d 100644
--- a/tests/test_inspect.py
+++ b/tests/test_inspect.py
@@ -48,6 +48,11 @@ skip_py314 = pytest.mark.skipif(
     reason="rendered differently on py3.14",
 )
 
+skip_py315 = pytest.mark.skipif(
+    sys.version_info.minor == 15 and sys.version_info.major == 3,
+    reason="rendered differently on py3.15",
+)
+
 
 skip_pypy3 = pytest.mark.skipif(
     hasattr(sys, "pypy_version_info"),
@@ -145,6 +150,7 @@ def test_inspect_empty_dict():
     assert render({}).startswith(expected)
 
 
+@skip_py315
 @skip_py314
 @skip_py313
 @skip_py312
@@ -169,6 +175,7 @@ def test_inspect_builtin_function_except_python311():
 @pytest.mark.skipif(
     sys.version_info < (3, 11), reason="print builtin signature only available on 3.11+"
 )
+@skip_py315
 @skip_pypy3
 def test_inspect_builtin_function_only_python311():
     # On 3.11, the print builtin *does* have a signature, unlike in prior versions
@@ -227,6 +234,7 @@ def test_inspect_integer_with_value():
 @skip_py312
 @skip_py313
 @skip_py314
+@skip_py315
 def test_inspect_integer_with_methods_python38_and_python39():
     expected = (
         "╭──────────────── <class 'int'> ─────────────────╮\n"
@@ -266,6 +274,7 @@ def test_inspect_integer_with_methods_python38_and_python39():
 @skip_py312
 @skip_py313
 @skip_py314
+@skip_py315
 def test_inspect_integer_with_methods_python310only():
     expected = (
         "╭──────────────── <class 'int'> ─────────────────╮\n"
@@ -309,6 +318,7 @@ def test_inspect_integer_with_methods_python310only():
 @skip_py312
 @skip_py313
 @skip_py314
+@skip_py315
 def test_inspect_integer_with_methods_python311():
     # 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
diff --git a/tests/test_pretty.py b/tests/test_pretty.py
index 29331d9d..a63f848b 100644
--- a/tests/test_pretty.py
+++ b/tests/test_pretty.py
@@ -42,6 +42,10 @@ skip_py314 = pytest.mark.skipif(
     sys.version_info.minor == 14 and sys.version_info.major == 3,
     reason="rendered differently on py3.14",
 )
+skip_py315 = pytest.mark.skipif(
+    sys.version_info.minor == 15 and sys.version_info.major == 3,
+    reason="rendered differently on py3.15",
+)
 
 
 def test_install() -> None:
@@ -644,6 +648,7 @@ def test_attrs_empty() -> None:
 @skip_py312
 @skip_py313
 @skip_py314
+@skip_py315
 def test_attrs_broken() -> None:
     @attr.define
     class Foo:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.