dev-python/sabctools: enable py3.14

Adds a patch from upstream to fix failing test on 3.14.

Signed-off-by: Joe Kappus <joe@wt.gd>
Part-of: https://github.com/gentoo/gentoo/pull/44787
Closes: https://github.com/gentoo/gentoo/pull/44787
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Joe Kappus 2025-11-26 14:54:40 -05:00 committed by Sam James
parent 9e3d332825
commit 4d85ff822b
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
2 changed files with 49 additions and 1 deletions

View File

@ -0,0 +1,46 @@
diff --git a/tests/test_decoder.py b/tests/test_decoder.py
index 9503923..d45e607 100644
--- a/tests/test_decoder.py
+++ b/tests/test_decoder.py
@@ -76,29 +76,32 @@ def test_empty():
def test_ref_counts():
"""Note that sys.getrefcount itself adds another reference!"""
+ # In Python 3.14+, getrefcount returns 1, in earlier versions it returns 2
+ expected_refcount = 1 if sys.version_info >= (3, 14) else 2
+
# Test regular case
data_plain = read_plain_yenc_file("test_regular.yenc")
data_out, filename, filesize, begin, end, crc_correct = sabctools_yenc_wrapper(data_plain)
- assert sys.getrefcount(data_plain) == 2
- assert sys.getrefcount(data_out) == 2
- assert sys.getrefcount(filename) == 2
- assert sys.getrefcount(begin) == 2
- assert sys.getrefcount(end) == 2
- assert sys.getrefcount(crc_correct) == 2
+ assert sys.getrefcount(data_plain) == expected_refcount
+ assert sys.getrefcount(data_out) == expected_refcount
+ assert sys.getrefcount(filename) == expected_refcount
+ assert sys.getrefcount(begin) == expected_refcount
+ assert sys.getrefcount(end) == expected_refcount
+ assert sys.getrefcount(crc_correct) == expected_refcount
# Test simple error case
fake_inp = memoryview(bytearray(b"1234"))
- assert sys.getrefcount(fake_inp) == 2
+ assert sys.getrefcount(fake_inp) == expected_refcount
with pytest.raises(ValueError):
sabctools.yenc_decode(fake_inp)
- assert sys.getrefcount(fake_inp) == 2
+ assert sys.getrefcount(fake_inp) == expected_refcount
# Test further processing
data_plain = read_plain_yenc_file("test_bad_crc_end.yenc")
with pytest.raises(ValueError):
sabctools_yenc_wrapper(data_plain)
- assert sys.getrefcount(data_plain) == 2
+ assert sys.getrefcount(data_plain) == expected_refcount
def test_crc_pickles():

View File

@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
@ -27,6 +27,8 @@ LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="amd64 ~x86"
PATCHES=( "${FILESDIR}/${P}-py314testfix.patch" )
BDEPEND="
test? (
dev-python/chardet[${PYTHON_USEDEP}]