diff --git a/pytest-asyncio-045.patch b/pytest-asyncio-045.patch new file mode 100644 index 0000000..5e57235 --- /dev/null +++ b/pytest-asyncio-045.patch @@ -0,0 +1,74 @@ +Index: python-redis/redis-5.2.1/tests/test_asyncio/test_scripting.py +=================================================================== +--- python-redis.orig/redis-5.2.1/tests/test_asyncio/test_scripting.py ++++ python-redis/redis-5.2.1/tests/test_asyncio/test_scripting.py +@@ -28,14 +28,14 @@ class TestScripting: + yield redis + await redis.script_flush() + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_eval(self, r): + await r.flushdb() + await r.set("a", 2) + # 2 * 3 == 6 + assert await r.eval(multiply_script, 1, "a", 3) == 6 + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + @skip_if_server_version_lt("6.2.0") + async def test_script_flush(self, r): + await r.set("a", 2) +@@ -55,14 +55,14 @@ class TestScripting: + await r.script_load(multiply_script) + await r.script_flush("NOTREAL") + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_evalsha(self, r): + await r.set("a", 2) + sha = await r.script_load(multiply_script) + # 2 * 3 == 6 + assert await r.evalsha(sha, 1, "a", 3) == 6 + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_evalsha_script_not_loaded(self, r): + await r.set("a", 2) + sha = await r.script_load(multiply_script) +@@ -71,7 +71,7 @@ class TestScripting: + with pytest.raises(exceptions.NoScriptError): + await r.evalsha(sha, 1, "a", 3) + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_script_loading(self, r): + # get the sha, then clear the cache + sha = await r.script_load(multiply_script) +@@ -80,7 +80,7 @@ class TestScripting: + await r.script_load(multiply_script) + assert await r.script_exists(sha) == [True] + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_script_object(self, r): + await r.script_flush() + await r.set("a", 2) +@@ -97,7 +97,7 @@ class TestScripting: + # Test first evalsha block + assert await multiply(keys=["a"], args=[3]) == 6 + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_script_object_in_pipeline(self, r): + await r.script_flush() + multiply = r.register_script(multiply_script) +@@ -127,7 +127,7 @@ class TestScripting: + assert await pipe.execute() == [True, b"2", 6] + assert await r.script_exists(multiply.sha) == [True] + +- @pytest.mark.asyncio(forbid_global_loop=True) ++ @pytest.mark.asyncio() + async def test_eval_msgpack_pipeline_error_in_lua(self, r): + msgpack_hello = r.register_script(msgpack_hello_script) + assert msgpack_hello.sha diff --git a/python-redis.changes b/python-redis.changes index 5f33ffb..5e18cde 100644 --- a/python-redis.changes +++ b/python-redis.changes @@ -1,6 +1,8 @@ ------------------------------------------------------------------- Thu Feb 13 10:59:14 UTC 2025 - Daniel Garcia +- Add pytest-asyncio-045.patch to make tests compatible with latest + python-pytest-asyncio - Update to 5.2.1: * Fixed unsecured tempfile.mktemp() command usage (#3446) * Fixed bug with SLOWLOG GET response parsing on Redis Software (#3441) diff --git a/python-redis.spec b/python-redis.spec index c66c5ff..14a5b7a 100644 --- a/python-redis.spec +++ b/python-redis.spec @@ -28,12 +28,14 @@ URL: https://github.com/redis/redis-py Source0: https://files.pythonhosted.org/packages/source/r/redis/redis-%{version}.tar.gz Source1: https://github.com/redis/redis-py/raw/refs/tags/v%{version}/pytest.ini Patch0: increase-test-timeout.patch +# PATCH-FIX-OPENSUSE pytest-asyncio-045.patch +Patch1: pytest-asyncio-045.patch BuildRequires: %{python_module async-timeout >= 4.0.2 if %python-base < 3.11.3} BuildRequires: %{python_module base >= 3.7} BuildRequires: %{python_module numpy} BuildRequires: %{python_module packaging} BuildRequires: %{python_module pip} -BuildRequires: %{python_module pytest-asyncio < 0.24} +BuildRequires: %{python_module pytest-asyncio} BuildRequires: %{python_module pytest-timeout} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} @@ -60,6 +62,7 @@ sed /coverage/d %SOURCE1 > pytest.ini %ifarch s390x %patch -P 0 -p1 %endif +%patch -P 1 -p2 # These tests pass locally but fail in obs with different # environment, like ALP build... @@ -105,7 +108,7 @@ donttest="test_geopos or test_georadius" donttest="$donttest or test_xautoclaim" # gh#redis/redis-py#2679 donttest+=" or test_acl_getuser_setuser or test_acl_log" -%pytest -m 'not (onlycluster or redismod or ssl)' -k "not ($donttest)" --ignore tests/test_ssl.py --ignore tests/test_asyncio/test_cluster.py --redis-url=redis://localhost:6379/ +%pytest -m 'not (onlycluster or redismod or ssl or graph)' -k "not ($donttest)" --ignore tests/test_ssl.py --ignore tests/test_asyncio/test_cluster.py --redis-url=redis://localhost:6379/ %endif %files %{python_files}