diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest index 958293e000c2e..0db4f0dd3dc2e 100644 --- a/dev-python/fakeredis/Manifest +++ b/dev-python/fakeredis/Manifest @@ -2,3 +2,5 @@ DIST fakeredis-2.34.1.tar.gz 177315 BLAKE2B ed0ca71b7feeeb81cb5bd927eb19a4bc3af5 DIST fakeredis-2.34.1.tar.gz.provenance 9528 BLAKE2B bd549cae9bb98f5d85879b38f87d4aed02ebd0b79e858eb273ef94b7c68caec221f684766ad107c445219a792ee9cd61a68791b956b90312ee6160899dbf622f SHA512 d93171e6b50361fc3717461e926d05a4c9773f5381d33c7f5ef8eba6630bb0393cbe9ffa3222f91b375576b457fa431e4037b25a75fcfa39c35b1a25050db899 DIST fakeredis-2.35.0.tar.gz 189000 BLAKE2B 425fa7663898fd8d3ea8c628c82528fe7654d11daf057daee31c9c35daa643ec557668e127ecd4ca652b40dcd8e5e95af4f235098335b711a4900f30e4fbadc1 SHA512 8ac1876c4d2a01338083c180d8eaa8575faf016770947ff8ad90019117f4e1df88ab4be370f6e1b286c265cc446fdc832fbeb2ae19fd9f6d8aadf217e2f59578 DIST fakeredis-2.35.0.tar.gz.provenance 9493 BLAKE2B 08f75a47d77f6eb860922dcd23cbd6fff6ed9c659b8f557a2b739049c49713f546af0a5c091ba0aae2d6b86a11808ab19e1a44fbbe6a96c4be795cac2abc629d SHA512 8545733e64c6d996e498c4bff46641a71068c92c8f91aee1a35bd0f06e2020e79db5a4f1dd65c2decaa8a3df253f84913d79b5159c30a30fadcdc58432e1845f +DIST fakeredis-2.35.1.tar.gz 189118 BLAKE2B 00fcb8ef49091db4dfebe3febcfe8d06a789dac73692a305e62457b944e6567005d27d50b5eb08282be9d5e71615660a2e336a1fd26938d41233db5c41bb2714 SHA512 2a0e25d7319beb6be5647d88d3c675b28011b35b1e48ed545420a17a4707edc552555cf9240d27a4505b26c69cfb3e1e28dc9ff3f78c2471ad18c40a5ed69001 +DIST fakeredis-2.35.1.tar.gz.provenance 9532 BLAKE2B fcf1ca04a303898904d338b7afeeba5731800aad686a7db916091842a9cde6953fd056f6567da3a0b7481c2c127f8e69eea6e672f711ec87cf244480c25ea7f6 SHA512 3e9f6ae3ec809c08110e2b2cad301891c1fd637e0527354f3c81aaa28cef2ea67f2e60103e66cbe78cab7c2d48c28c52a29d82896ba2750d3b159794c271c176 diff --git a/dev-python/fakeredis/fakeredis-2.35.1.ebuild b/dev-python/fakeredis/fakeredis-2.35.1.ebuild new file mode 100644 index 0000000000000..b1f166c94a950 --- /dev/null +++ b/dev-python/fakeredis/fakeredis-2.35.1.ebuild @@ -0,0 +1,98 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/cunla/fakeredis-py +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Fake implementation of redis API for testing purposes" +HOMEPAGE=" + https://github.com/cunla/fakeredis-py/ + https://pypi.org/project/fakeredis/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/redis-4.3[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-db/redis + dev-python/packaging[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{asyncio,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # TODO + "test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis2]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis3]" + "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[StrictRedis3]" + test/test_mixins/test_set_commands.py::test_smismember_wrong_type + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[StrictRedis2]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[StrictRedis3]" + "test/test_mixins/test_streams_commands.py::test_xgroup_setid_redis7[StrictRedis2]" + "test/test_mixins/test_streams_commands.py::test_xgroup_setid_redis7[StrictRedis3]" + # json ext + test/test_json/test_json.py + test/test_json/test_json_arr_commands.py + # unknown command 'evalsha' + "test/test_asyncredis.py::test_async_lock[fake_resp2]" + "test/test_asyncredis.py::test_async_lock[fake_resp3]" + # incompatible with xdist, not worth extra effort + test/test_tcp_server/test_connectivity.py + # flaky + test/test_mixins/test_server_commands.py::test_bgsave +) +EPYTEST_IGNORE=( + # these tests fail a lot... + test/test_hypothesis + test/test_hypothesis_joint.py + # require valkey package + test/test_valkey +) + +src_prepare() { + distutils-r1_src_prepare + + # do not install duplicate license + sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die +} + +src_test() { + local redis_pid="${T}"/redis.pid + local redis_port=6390 + + einfo "Spawning Redis" + einfo "NOTE: Port ${redis_port} must be free" + "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + bind 127.0.0.1 + EOF + + # Run the tests + distutils-r1_src_test + + # Clean up afterwards + kill "$(<"${redis_pid}")" || die +} + +python_test() { + # we can run "fake" tests in parallel, but "real" seem to share + # the same connection + epytest -m "not real" + EPYTEST_XDIST= epytest -m "real" +}