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 /\/\ /\ >< `/
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:

Reply via email to