repo/gentoo:master commit in: dev-python/fakeredis/

Michał Górny <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1787117906.8d45863c5acc0c999a82a59017405ce4cf502bd1.mgorny@gentoo>
commit:     8d45863c5acc0c999a82a59017405ce4cf502bd1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 19 04:34:54 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 19 05:38:26 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d45863c

dev-python/fakeredis: Bump to 2.37.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/fakeredis/Manifest                |   2 +
 dev-python/fakeredis/fakeredis-2.37.1.ebuild | 147 +++++++++++++++++++++++++++
 2 files changed, 149 insertions(+)

diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index 556ca88d74c8..e365dc745950 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -4,3 +4,5 @@ DIST fakeredis-2.36.2.tar.gz 213336 BLAKE2B 23c6333b945ff35d482c9b04b81e067106f0
 DIST fakeredis-2.36.2.tar.gz.provenance 10085 BLAKE2B 15ceb7fb92e07a882c3b313d62b39bb30032bc4f951b84903cd969d4905fc987fb3267f0ef0d1a7913b72a10cb4d3f091d15a20f4bc04da0809724247bb447e3 SHA512 b03494bd124e64dd11da4256a8d994a9fb4fe779b3fce08f242c49a7518261623495300a97cb6a0fbead6380c00bd27b709599485051359969b01eacffe6588c
 DIST fakeredis-2.37.0.tar.gz 236339 BLAKE2B 4bfd2dc6233cff7296a8a1499e0ec38cdebfc58bdd5c2789e50e7550396201fd7151897dfcf59a8191ca961d912ef8834862a86f3762726fec7aab36cfda8aea SHA512 fda7e877a311f4c28363527e41fb12d00be97047b14641ccefd7d708e08fbdd5690b659e01bbf83e76cf44b7730ebdb97316599f97af7dbe85dee1ea0602799d
 DIST fakeredis-2.37.0.tar.gz.provenance 9807 BLAKE2B 91770319cfe72306e31ac8e36ae99e5a390892224e2389bfccf6cc9f813712d7de55e6197b4a85dba57cbcf99dba6eeca3710a423eca9f172ca24172fb38e7cc SHA512 3d73bc72222549cdee2ef492510d4461dc2b87c437d0462d16fd5c9d7fe00b78f3b9d65ca012953dfa72924984a5423b93a7b91b7d8c15e0904c6c07373a950f
+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

diff --git a/dev-python/fakeredis/fakeredis-2.37.1.ebuild b/dev-python/fakeredis/fakeredis-2.37.1.ebuild
new file mode 100644
index 000000000000..1fd473647dd7
--- /dev/null
+++ b/dev-python/fakeredis/fakeredis-2.37.1.ebuild
@@ -0,0 +1,147 @@
+# 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_{12..15} )
+
+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
+		test/test_stack/test_json_fpha.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"
+			;;
+		valkey)
+			EPYTEST_DESELECT+=(
+				test/test_stack/test_vectorset.py
+			)
+			;;
+	esac
+
+	# we can run "fake" tests in parallel, but "real" seem to share
+	# the same connection
+	EPYTEST_XDIST= epytest -m "real"
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.