dev-python/pygame: enable py3.14

Had another look at this and seen that upstream has fixed tests since.
Seems only the tests themselves were broken given it does not touch
the code, albeit the upstream commit does sound doubtful about its
own changes and there could be more to that.

Did try one game (games-puzzle/pathological) just in case and seems ok.

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens 2025-11-23 21:52:32 -05:00
parent ec90c2a45c
commit bef12ce993
No known key found for this signature in database
GPG Key ID: B24406B0B0AC4334
2 changed files with 176 additions and 1 deletions

View File

@ -0,0 +1,171 @@
https://github.com/pygame/pygame/commit/ac69c0be7e16
--- a/test/freetype_test.py
+++ b/test/freetype_test.py
@@ -1611,3 +1611,7 @@
o = font.render_raw(text)
- self.assertEqual(getrefcount(o), 2)
+ # if python 3.14+, getrefcount returns 1 instead of 2
+ if sys.version_info >= (3, 14):
+ self.assertEqual(getrefcount(o), 1)
+ else:
+ self.assertEqual(getrefcount(o), 2)
self.assertEqual(getrefcount(o[0]), 2)
@@ -1616,3 +1620,7 @@
o = font.get_metrics("AB")
- self.assertEqual(getrefcount(o), 2)
+ if sys.version_info >= (3, 14):
+ self.assertEqual(getrefcount(o), 1)
+ else:
+ self.assertEqual(getrefcount(o), 2)
+
for i in range(len(o)):
@@ -1620,3 +1628,6 @@
o = font.get_sizes()
- self.assertEqual(getrefcount(o), 2)
+ if sys.version_info >= (3, 14):
+ self.assertEqual(getrefcount(o), 1)
+ else:
+ self.assertEqual(getrefcount(o), 2)
for i in range(len(o)):
--- a/test/mask_test.py
+++ b/test/mask_test.py
@@ -2581,3 +2581,7 @@
"""Ensures empty and full masks can be drawn onto surfaces."""
- expected_ref_count = 3
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 2
+ else:
+ expected_ref_count = 3
+
size = (33, 65)
@@ -2601,3 +2605,7 @@
"""Ensures empty and full masks can be drawn onto a created surface."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2626,3 +2634,7 @@
"""Ensures to_surface accepts a surface arg/kwarg."""
- expected_ref_count = 4
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 3
+ else:
+ expected_ref_count = 4
+
expected_color = pygame.Color("white")
@@ -2650,3 +2662,7 @@
"""Ensures to_surface accepts a setsurface arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2677,3 +2693,7 @@
"""Ensures to_surface accepts a unsetsurface arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2703,3 +2723,7 @@
"""Ensures to_surface accepts a setcolor arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2740,3 +2764,7 @@
"""Ensures to_surface accepts a unsetcolor arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2779,3 +2807,7 @@
"""Ensures to_surface accepts a dest arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -2835,3 +2867,7 @@
"""Ensures to_surface accepts an area arg/kwarg."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -3329,3 +3365,7 @@
"""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -3413,3 +3453,7 @@
"""
- expected_ref_count = 4
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 3
+ else:
+ expected_ref_count = 4
+
expected_flag = SRCALPHA
@@ -5275,3 +5319,7 @@
"""Ensures zero sized surfaces are handled correctly."""
- expected_ref_count = 3
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 2
+ else:
+ expected_ref_count = 3
+
size = (0, 0)
@@ -5289,3 +5337,7 @@
"""Ensures zero sized setsurfaces are handled correctly."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
@@ -5309,3 +5361,7 @@
"""Ensures zero sized unsetsurfaces are handled correctly."""
- expected_ref_count = 2
+ if sys.version_info >= (3, 14):
+ expected_ref_count = 1
+ else:
+ expected_ref_count = 2
+
expected_flag = SRCALPHA
--- a/test/rwobject_test.py
+++ b/test/rwobject_test.py
@@ -2,2 +2,3 @@
import unittest
+import sys
@@ -85,3 +86,6 @@
bpath = encode_string(upath)
- self.assertEqual(getrefcount(bpath), before)
+ if sys.version_info >= (3, 14):
+ self.assertEqual(getrefcount(bpath), before - 1)
+ else:
+ self.assertEqual(getrefcount(bpath), before)

View File

@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1 DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..13} pypy3_11 ) PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
inherit distutils-r1 inherit distutils-r1
@ -58,6 +58,10 @@ BDEPEND="
) )
" "
PATCHES=(
"${FILESDIR}"/${P}-py314-tests.patch
)
src_prepare() { src_prepare() {
distutils-r1_src_prepare distutils-r1_src_prepare