diff options
Diffstat (limited to 'dev-python/fakeredis')
| -rw-r--r-- | dev-python/fakeredis/Manifest | 2 | ||||
| -rw-r--r-- | dev-python/fakeredis/fakeredis-2.36.2.ebuild | 141 |
2 files changed, 143 insertions, 0 deletions
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest index 4d561d52ef54..944ad57e7079 100644 --- a/dev-python/fakeredis/Manifest +++ b/dev-python/fakeredis/Manifest @@ -1,5 +1,7 @@ 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 +DIST fakeredis-2.36.2.tar.gz 213336 BLAKE2B 23c6333b945ff35d482c9b04b81e067106f01492e16336f0cb40406f20bb664d66325f2ee2d1db95e2d7157127c12fbb21d18ffcb4c42da4aba1ef0cbbafc67b SHA512 1ed183da851bd0285877fe70f17a47272637230257878ca8d2fd242066311e14112d83eb5da1ec9d30f2e740b80967065abf5eb63efd5378c685355f8757a6f1 +DIST fakeredis-2.36.2.tar.gz.provenance 10085 BLAKE2B 15ceb7fb92e07a882c3b313d62b39bb30032bc4f951b84903cd969d4905fc987fb3267f0ef0d1a7913b72a10cb4d3f091d15a20f4bc04da0809724247bb447e3 SHA512 b03494bd124e64dd11da4256a8d994a9fb4fe779b3fce08f242c49a7518261623495300a97cb6a0fbead6380c00bd27b709599485051359969b01eacffe6588c DIST fakeredis-2.37.1.tar.gz 238182 BLAKE2B 48755cfc378a0e6199f902d58bee2b9d1e1be5fc1e516121307761e1e1fa2f6c4c5b4b6c118f6f9ac1dcd0a7026cbe7cbf72659b8f1771ee35f8a4fee2fed797 SHA512 b03249a375b9b8c7ab2d2483ebb9307a26bb14664d6c0f89a38418bd3e4aa890285a530159d00f70623d8e33412a29e560ed3e70e80b1a93fc4df054cfc3ad73 DIST fakeredis-2.37.1.tar.gz.provenance 9609 BLAKE2B 0d8e0083615dd76de483c88fcbcb125b4dbd9d32c8d139e4cf3d9d6a9c965c88b937cb4b11cfc58f154da9ffd5eec943938176557792a7b65b2d99d667834b97 SHA512 168051305b87497761bcda3d1627c26d33f30a520de8ae2e8a50d2c3e87260a68c99833031d89195ded134661d94a5a08cbd00f125fcc2d1ba1e0b0eddb95dd8 DIST fakeredis-2.38.0.tar.gz 271116 BLAKE2B c16d21d194a2589363a753737fbbe0729ead7fd4f192610b5e170cbfde8dc09c5edf2534f74ca87ea022b58ac8c3f8fc94622934efeeb5dea4ae15b6eaf3ec08 SHA512 f8020da63b3ec516329b517f39fa1fa5224efb6ccebb9c1c6ffccc3906711d0d5dfc5bf73fb0ea7137481a345e3028ff1eb6c56b26e13437384d215771ffd20f diff --git a/dev-python/fakeredis/fakeredis-2.36.2.ebuild b/dev-python/fakeredis/fakeredis-2.36.2.ebuild new file mode 100644 index 000000000000..43c6d3aca88d --- /dev/null +++ b/dev-python/fakeredis/fakeredis-2.36.2.ebuild @@ -0,0 +1,141 @@ +# 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=( python3_{13..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 ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + >=dev-python/redis-4.3[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-db/redis + dev-db/valkey + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/valkey[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{asyncio,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # do not install duplicate license + sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die +} + +wait_for_status() { + local expected=${1} + + local i + for i in {1..50}; do + "${server}-cli" -p "${redis_port}" ping + [[ ${?} -eq ${expected} ]] && return + sleep 0.2 + done + + die "Timeout while waiting for ${1}-server to start/stop" +} + +src_test() { + local server + server=fake + einfo "Running ${server} server tests" + distutils-r1_src_test + + for server in redis valkey; do + local redis_pid="${T}/${server}.pid" + local redis_port=6390 + local redis_log="${T}/${server}.log" + local redis_db="${T}/${server}.db" + + einfo "Running ${server} server tests" + "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + logfile ${redis_log} + dir ${redis_db%/*} + dbfilename ${redis_db##*/} + bind 127.0.0.1 + EOF + + # wait for the server to start + wait_for_status 0 + + distutils-r1_src_test + + "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server" + + # wait for the server to stop + wait_for_status 1 + done +} + +python_test() { + local EPYTEST_DESELECT=( + # json ext + test/test_stack/test_json.py + test/test_stack/test_json_arr_commands.py + # TODO + "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]" + "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]" + ) + + local EPYTEST_IGNORE=( + # these tests fail a lot... + test/test_hypothesis + test/test_hypothesis_joint.py + ) + + case ${server} in + fake) + EPYTEST_DESELECT=( + # TODO + test/test_tcp_server/test_connectivity.py::test_bulk_string_length + ) + + # every test starts its own server + EPYTEST_XDIST= epytest -m "tcp_server" + return + ;; + redis) + EPYTEST_DESELECT+=( + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]" + + "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]" + "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]" + "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]" + ) + + # run fake tests only once + epytest -m "not real and not tcp_server" + ;; + esac + + # we can run "fake" tests in parallel, but "real" seem to share + # the same connection + EPYTEST_XDIST= epytest -m "real" +} |
