python-cachelib-0.13.0 fails to build with Python 3.13: pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None
Opened this issue · 1 comments
topazus commented
Some pytest output
+ /usr/bin/pytest -v -r s -k 'not Uwsgi and not DynamoDb and not MongoDb'
============================= test session starts ==============================
platform linux -- Python 3.13.0b2, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0
configfile: setup.cfg
testpaths: tests
plugins: xprocess-1.0.2
collecting ... collected 160 items / 22 deselected / 1 skipped / 138 selected
tests/test_base_cache.py::TestBaseCache::test_get PASSED [ 0%]
tests/test_base_cache.py::TestBaseCache::test_delete PASSED [ 1%]
tests/test_base_cache.py::TestBaseCache::test_get_many PASSED [ 2%]
tests/test_base_cache.py::TestBaseCache::test_get_dict PASSED [ 2%]
tests/test_base_cache.py::TestBaseCache::test_set PASSED [ 3%]
tests/test_base_cache.py::TestBaseCache::test_add PASSED [ 4%]
tests/test_base_cache.py::TestBaseCache::test_set_many PASSED [ 5%]
tests/test_base_cache.py::TestBaseCache::test_delete_many PASSED [ 5%]
tests/test_base_cache.py::TestBaseCache::test_has PASSED [ 6%]
tests/test_base_cache.py::TestBaseCache::test_clear PASSED [ 7%]
tests/test_base_cache.py::TestBaseCache::test_inc PASSED [ 7%]
tests/test_base_cache.py::TestBaseCache::test_dec PASSED [ 8%]
tests/test_file_system_cache.py::TestFileSystemCache::test_has[FileSystemCache] PASSED [ 9%]
tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomSerializerCache] PASSED [ 10%]
tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomHashingMethodCache] PASSED [ 10%]
tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomDefaultHashingMethodCache] PASSED [ 11%]
tests/test_file_system_cache.py::TestFileSystemCache::test_clear[FileSystemCache] PASSED [ 12%]
tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomSerializerCache] PASSED [ 13%]
tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomHashingMethodCache] PASSED [ 13%]
tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomDefaultHashingMethodCache] PASSED [ 14%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[FileSystemCache] PASSED [ 15%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomSerializerCache] PASSED [ 15%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomHashingMethodCache] PASSED [ 16%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomDefaultHashingMethodCache] PASSED [ 17%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[FileSystemCache] PASSED [ 18%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomSerializerCache] PASSED [ 18%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomHashingMethodCache] PASSED [ 19%]
tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomDefaultHashingMethodCache] PASSED [ 20%]
tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[FileSystemCache] PASSED [ 21%]
tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomSerializerCache] PASSED [ 21%]
tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomHashingMethodCache] PASSED [ 22%]
tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomDefaultHashingMethodCache] PASSED [ 23%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete[FileSystemCache] PASSED [ 23%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomSerializerCache] PASSED [ 24%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomHashingMethodCache] PASSED [ 25%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomDefaultHashingMethodCache] PASSED [ 26%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[FileSystemCache] PASSED [ 26%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomSerializerCache] PASSED [ 27%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomHashingMethodCache] PASSED [ 28%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomDefaultHashingMethodCache] PASSED [ 28%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[FileSystemCache] PASSED [ 29%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomSerializerCache] PASSED [ 30%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomHashingMethodCache] PASSED [ 31%]
tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomDefaultHashingMethodCache] PASSED [ 31%]
tests/test_file_system_cache.py::TestFileSystemCache::test_add[FileSystemCache] PASSED [ 32%]
tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomSerializerCache] PASSED [ 33%]
tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomHashingMethodCache] PASSED [ 34%]
tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomDefaultHashingMethodCache] PASSED [ 34%]
tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[FileSystemCache] PASSED [ 35%]
tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomSerializerCache] PASSED [ 36%]
tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomHashingMethodCache] PASSED [ 36%]
tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomDefaultHashingMethodCache] PASSED [ 37%]
tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[FileSystemCache] PASSED [ 38%]
tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomSerializerCache] PASSED [ 39%]
tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomHashingMethodCache] PASSED [ 39%]
tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomDefaultHashingMethodCache] PASSED [ 40%]
tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[FileSystemCache] PASSED [ 41%]
tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomSerializerCache] PASSED [ 42%]
tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomHashingMethodCache] PASSED [ 42%]
tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomDefaultHashingMethodCache] PASSED [ 43%]
tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[FileSystemCache] PASSED [ 44%]
tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomSerializerCache] PASSED [ 44%]
tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomHashingMethodCache] PASSED [ 45%]
tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomDefaultHashingMethodCache] PASSED [ 46%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[FileSystemCache] PASSED [ 47%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomSerializerCache] PASSED [ 47%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomHashingMethodCache] PASSED [ 48%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomDefaultHashingMethodCache] PASSED [ 49%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[FileSystemCache] PASSED [ 50%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomSerializerCache] PASSED [ 50%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomHashingMethodCache] PASSED [ 51%]
tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomDefaultHashingMethodCache] PASSED [ 52%]
tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[FileSystemCache] PASSED [ 52%]
tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomSerializerCache] PASSED [ 53%]
tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomHashingMethodCache] PASSED [ 54%]
tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomDefaultHashingMethodCache] PASSED [ 55%]
tests/test_interface_uniformity.py::TestInterfaceUniformity::test_types_have_all_base_methods ERROR [ 55%]
tests/test_memcached_cache.py::TestMemcachedCache::test_has FAILED [ 56%]
tests/test_memcached_cache.py::TestMemcachedCache::test_clear FAILED [ 57%]
tests/test_memcached_cache.py::TestMemcachedCache::test_set_get FAILED [ 57%]
tests/test_memcached_cache.py::TestMemcachedCache::test_set_get_many FAILED [ 58%]
tests/test_memcached_cache.py::TestMemcachedCache::test_get_dict FAILED [ 59%]
tests/test_memcached_cache.py::TestMemcachedCache::test_delete FAILED [ 60%]
tests/test_memcached_cache.py::TestMemcachedCache::test_delete_many FAILED [ 60%]
tests/test_memcached_cache.py::TestMemcachedCache::test_delete_many_ignore_errors FAILED [ 61%]
tests/test_memcached_cache.py::TestMemcachedCache::test_add FAILED [ 62%]
tests/test_memcached_cache.py::TestMemcachedCache::test_inc_dec FAILED [ 63%]
tests/test_memcached_cache.py::TestMemcachedCache::test_expiration FAILED [ 63%]
tests/test_redis_cache.py::TestRedisCache::test_has[RedisCache] PASSED [ 64%]
tests/test_redis_cache.py::TestRedisCache::test_has[CustomCache] PASSED [ 65%]
tests/test_redis_cache.py::TestRedisCache::test_clear[RedisCache] PASSED [ 65%]
tests/test_redis_cache.py::TestRedisCache::test_clear[CustomCache] PASSED [ 66%]
tests/test_redis_cache.py::TestRedisCache::test_set_get[RedisCache] PASSED [ 67%]
tests/test_redis_cache.py::TestRedisCache::test_set_get[CustomCache] PASSED [ 68%]
tests/test_redis_cache.py::TestRedisCache::test_set_get_many[RedisCache] PASSED [ 68%]
tests/test_redis_cache.py::TestRedisCache::test_set_get_many[CustomCache] PASSED [ 69%]
tests/test_redis_cache.py::TestRedisCache::test_get_dict[RedisCache] PASSED [ 70%]
tests/test_redis_cache.py::TestRedisCache::test_get_dict[CustomCache] PASSED [ 71%]
tests/test_redis_cache.py::TestRedisCache::test_delete[RedisCache] PASSED [ 71%]
tests/test_redis_cache.py::TestRedisCache::test_delete[CustomCache] PASSED [ 72%]
tests/test_redis_cache.py::TestRedisCache::test_delete_many[RedisCache] PASSED [ 73%]
tests/test_redis_cache.py::TestRedisCache::test_delete_many[CustomCache] PASSED [ 73%]
tests/test_redis_cache.py::TestRedisCache::test_delete_many_ignore_errors[RedisCache] PASSED [ 74%]
tests/test_redis_cache.py::TestRedisCache::test_delete_many_ignore_errors[CustomCache] PASSED [ 75%]
tests/test_redis_cache.py::TestRedisCache::test_add[RedisCache] PASSED [ 76%]
tests/test_redis_cache.py::TestRedisCache::test_add[CustomCache] PASSED [ 76%]
tests/test_redis_cache.py::TestRedisCache::test_inc_dec[RedisCache] PASSED [ 77%]
tests/test_redis_cache.py::TestRedisCache::test_inc_dec[CustomCache] PASSED [ 78%]
tests/test_redis_cache.py::TestRedisCache::test_expiration[RedisCache] PASSED [ 78%]
tests/test_redis_cache.py::TestRedisCache::test_expiration[CustomCache] PASSED [ 79%]
tests/test_redis_cache.py::TestRedisCache::test_callable_key[RedisCache] PASSED [ 80%]
tests/test_redis_cache.py::TestRedisCache::test_callable_key[CustomCache] PASSED [ 81%]
tests/test_simple_cache.py::TestSimpleCache::test_clear[SimpleCache] PASSED [ 81%]
tests/test_simple_cache.py::TestSimpleCache::test_clear[CustomCache] PASSED [ 82%]
tests/test_simple_cache.py::TestSimpleCache::test_has[SimpleCache] PASSED [ 83%]
tests/test_simple_cache.py::TestSimpleCache::test_has[CustomCache] PASSED [ 84%]
tests/test_simple_cache.py::TestSimpleCache::test_set_get[SimpleCache] PASSED [ 84%]
tests/test_simple_cache.py::TestSimpleCache::test_set_get[CustomCache] PASSED [ 85%]
tests/test_simple_cache.py::TestSimpleCache::test_set_get_many[SimpleCache] PASSED [ 86%]
tests/test_simple_cache.py::TestSimpleCache::test_set_get_many[CustomCache] PASSED [ 86%]
tests/test_simple_cache.py::TestSimpleCache::test_get_dict[SimpleCache] PASSED [ 87%]
tests/test_simple_cache.py::TestSimpleCache::test_get_dict[CustomCache] PASSED [ 88%]
tests/test_simple_cache.py::TestSimpleCache::test_delete[SimpleCache] PASSED [ 89%]
tests/test_simple_cache.py::TestSimpleCache::test_delete[CustomCache] PASSED [ 89%]
tests/test_simple_cache.py::TestSimpleCache::test_delete_many[SimpleCache] PASSED [ 90%]
tests/test_simple_cache.py::TestSimpleCache::test_delete_many[CustomCache] PASSED [ 91%]
tests/test_simple_cache.py::TestSimpleCache::test_delete_many_ignore_errors[SimpleCache] PASSED [ 92%]
tests/test_simple_cache.py::TestSimpleCache::test_delete_many_ignore_errors[CustomCache] PASSED [ 92%]
tests/test_simple_cache.py::TestSimpleCache::test_add[SimpleCache] PASSED [ 93%]
tests/test_simple_cache.py::TestSimpleCache::test_add[CustomCache] PASSED [ 94%]
tests/test_simple_cache.py::TestSimpleCache::test_inc_dec[SimpleCache] PASSED [ 94%]
tests/test_simple_cache.py::TestSimpleCache::test_inc_dec[CustomCache] PASSED [ 95%]
tests/test_simple_cache.py::TestSimpleCache::test_expiration[SimpleCache] PASSED [ 96%]
tests/test_simple_cache.py::TestSimpleCache::test_expiration[CustomCache] PASSED [ 97%]
tests/test_simple_cache.py::TestSimpleCache::test_threshold[SimpleCache] PASSED [ 97%]
tests/test_simple_cache.py::TestSimpleCache::test_threshold[CustomCache] PASSED [ 98%]
tests/test_simple_cache.py::TestSimpleCache::test_prune_old_entries[SimpleCache] PASSED [ 99%]
tests/test_simple_cache.py::TestSimpleCache::test_prune_old_entries[CustomCache] PASSED [100%]
==================================== ERRORS ====================================
__ ERROR at setup of TestInterfaceUniformity.test_types_have_all_base_methods __
cls = <class '_pytest.runner.CallInfo'>
func = <function call_runtest_hook.<locals>.<lambda> at 0x7fb3569d1e40>
when = 'setup'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: "Callable[[], TResult]",
when: "Literal['collect', 'setup', 'call', 'teardown']",
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: Optional[TResult] = func()
/usr/lib/python3.13/site-packages/_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.13/site-packages/_pytest/runner.py:262: in <lambda>
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
/usr/lib/python3.13/site-packages/pluggy/_hooks.py:493: in __call__
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
/usr/lib/python3.13/site-packages/pluggy/_manager.py:115: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
/usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:83: in pytest_runtest_setup
yield from unraisable_exception_runtest_hook()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
with catch_unraisable_exception() as cm:
yield
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None
E
E Traceback (most recent call last):
E File "/usr/lib64/python3.13/site-packages/pylibmc/client.py", line 142, in __init__
E super().__init__(servers=translate_server_specs(servers),
E ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E binary=binary,
E ^^^^^^^^^^^^^^
E username=username, password=password,
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E behaviors=_behaviors_numeric(behaviors))
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: 'NoneType' object is not subscriptable
/usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning
---------------------------- Captured stdout setup -----------------------------
/builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/redis$ redis-server --port 6360
process 'redis' started pid=292
292:C 06 Jun 2024 21:25:21.994 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
292:C 06 Jun 2024 21:25:21.994 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
292:C 06 Jun 2024 21:25:21.994 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=292, just started
292:C 06 Jun 2024 21:25:21.994 * Configuration loaded
292:M 06 Jun 2024 21:25:21.995 * monotonic clock: POSIX clock_gettime
292:M 06 Jun 2024 21:25:21.995 * Running mode=standalone, port=6360.
292:M 06 Jun 2024 21:25:21.995 * Server initialized
292:M 06 Jun 2024 21:25:21.995 * Ready to accept connections tcp
redis process startup detected
/builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/pylibmc$ memcached -vv
process 'pylibmc' started pid=298
slab class 1: chunk size 96 perslab 10922
slab class 2: chunk size 120 perslab 8738
slab class 3: chunk size 152 perslab 6898
slab class 4: chunk size 192 perslab 5461
slab class 5: chunk size 240 perslab 4369
slab class 6: chunk size 304 perslab 3449
slab class 7: chunk size 384 perslab 2730
slab class 8: chunk size 480 perslab 2184
slab class 9: chunk size 600 perslab 1747
slab class 10: chunk size 752 perslab 1394
slab class 11: chunk size 944 perslab 1110
slab class 12: chunk size 1184 perslab 885
slab class 13: chunk size 1480 perslab 708
slab class 14: chunk size 1856 perslab 564
slab class 15: chunk size 2320 perslab 451
slab class 16: chunk size 2904 perslab 361
slab class 17: chunk size 3632 perslab 288
slab class 18: chunk size 4544 perslab 230
slab class 19: chunk size 5680 perslab 184
slab class 20: chunk size 7104 perslab 147
slab class 21: chunk size 8880 perslab 118
slab class 22: chunk size 11104 perslab 94
slab class 23: chunk size 13880 perslab 75
slab class 24: chunk size 17352 perslab 60
slab class 25: chunk size 21696 perslab 48
slab class 26: chunk size 27120 perslab 38
slab class 27: chunk size 33904 perslab 30
slab class 28: chunk size 42384 perslab 24
slab class 29: chunk size 52984 perslab 19
slab class 30: chunk size 66232 perslab 15
slab class 31: chunk size 82792 perslab 12
slab class 32: chunk size 103496 perslab 10
slab class 33: chunk size 129376 perslab 8
slab class 34: chunk size 161720 perslab 6
slab class 35: chunk size 202152 perslab 5
slab class 36: chunk size 252696 perslab 4
slab class 37: chunk size 315872 perslab 3
slab class 38: chunk size 394840 perslab 2
slab class 39: chunk size 524288 perslab 2
<26 server listening (auto-negotiate)
pylibmc process startup detected
=================================== FAILURES ===================================
_________________________ TestMemcachedCache.test_has __________________________
cls = <class '_pytest.runner.CallInfo'>
func = <function call_runtest_hook.<locals>.<lambda> at 0x7fb35634b920>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: "Callable[[], TResult]",
when: "Literal['collect', 'setup', 'call', 'teardown']",
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: Optional[TResult] = func()
/usr/lib/python3.13/site-packages/_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.13/site-packages/_pytest/runner.py:262: in <lambda>
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
/usr/lib/python3.13/site-packages/pluggy/_hooks.py:493: in __call__
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
/usr/lib/python3.13/site-packages/pluggy/_manager.py:115: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
/usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:88: in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
with catch_unraisable_exception() as cm:
yield
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None
E
E Traceback (most recent call last):
E File "/usr/lib64/python3.13/site-packages/pylibmc/client.py", line 142, in __init__
E super().__init__(servers=translate_server_specs(servers),
E ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E binary=binary,
E ^^^^^^^^^^^^^^
E username=username, password=password,
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E behaviors=_behaviors_numeric(behaviors))
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: 'NoneType' object is not subscriptable
/usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning
---------------------------- Captured stdout setup -----------------------------
/builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/pylibmc$ memcached -vv
process 'pylibmc' started pid=318
slab class 1: chunk size 96 perslab 10922
slab class 2: chunk size 120 perslab 8738
slab class 3: chunk size 152 perslab 6898
slab class 4: chunk size 192 perslab 5461
slab class 5: chunk size 240 perslab 4369
slab class 6: chunk size 304 perslab 3449
slab class 7: chunk size 384 perslab 2730
slab class 8: chunk size 480 perslab 2184
slab class 9: chunk size 600 perslab 1747
slab class 10: chunk size 752 perslab 1394
slab class 11: chunk size 944 perslab 1110
slab class 12: chunk size 1184 perslab 885
slab class 13: chunk size 1480 perslab 708
slab class 14: chunk size 1856 perslab 564
slab class 15: chunk size 2320 perslab 451
slab class 16: chunk size 2904 perslab 361
slab class 17: chunk size 3632 perslab 288
slab class 18: chunk size 4544 perslab 230
slab class 19: chunk size 5680 perslab 184
slab class 20: chunk size 7104 perslab 147
slab class 21: chunk size 8880 perslab 118
slab class 22: chunk size 11104 perslab 94
slab class 23: chunk size 13880 perslab 75
slab class 24: chunk size 17352 perslab 60
slab class 25: chunk size 21696 perslab 48
slab class 26: chunk size 27120 perslab 38
slab class 27: chunk size 33904 perslab 30
slab class 28: chunk size 42384 perslab 24
slab class 29: chunk size 52984 perslab 19
slab class 30: chunk size 66232 perslab 15
slab class 31: chunk size 82792 perslab 12
slab class 32: chunk size 103496 perslab 10
slab class 33: chunk size 129376 perslab 8
slab class 34: chunk size 161720 perslab 6
slab class 35: chunk size 202152 perslab 5
slab class 36: chunk size 252696 perslab 4
slab class 37: chunk size 315872 perslab 3
slab class 38: chunk size 394840 perslab 2
slab class 39: chunk size 524288 perslab 2
<26 server listening (auto-negotiate)
pylibmc process startup detected
detailed build log: https://copr-be.cloud.fedoraproject.org/results/%40python/python3.13/fedora-rawhide-x86_64/07545359-python-cachelib/builder-live.log.gz
https://bugzilla.redhat.com/show_bug.cgi?id=2251780
Environment:
- Python version: Python 3.13
- CacheLib version: 0.13.0
hroncok commented
I belive this should fix it: lericson/pylibmc#292