commit: f9d9fcc219c783464ec047e8f31974e1143865b4
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 16 05:42:57 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 16 05:48:12 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9d9fcc2
dev-python/pymongo: Remove old
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
dev-python/pymongo/Manifest | 3 -
dev-python/pymongo/pymongo-4.11.3.ebuild | 237 -------------------------------
dev-python/pymongo/pymongo-4.13.0.ebuild | 201 --------------------------
dev-python/pymongo/pymongo-4.14.0.ebuild | 201 --------------------------
4 files changed, 642 deletions(-)
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 0277e45f750a..d264ac089e96 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,7 +1,4 @@
-DIST mongo-python-driver-4.11.3.gh.tar.gz 2112671 BLAKE2B
2c19b974461657b805484ad58bb7a3678950be716cbfc0e68853699560221dc3b8094eb8546e3b42efbc933596ebd98da35cc7a195f9690a02e4ff15855dd292
SHA512
f8e282085467b1ef6272ce13859ef7a88fdce9a674a3c40cf6f7e1352baecd80cf3394904834805e0921ce1c339bbc4ff54d1e33eadba7ee9c5f3f7a05e6fd99
-DIST mongo-python-driver-4.13.0.gh.tar.gz 2225613 BLAKE2B
e5532776e494b75a0beadb5bb20d087e3002f58c8e0214fe968aad907e90a8bd53a9dc7124dace600f9e673d1c4ce867672e3ebe3f59438923a3693d5dbf15ff
SHA512
bb4a5f96614c16503eff8c9dd67cf8a8700ce05078417cb847ac136d1ebb36edc591bd8dda3c4bf8ba4f25adb6d30e15a3e2870ef6180859b912cdc089d7f97a
DIST mongo-python-driver-4.13.1.gh.tar.gz 2225917 BLAKE2B
2c02e608f54c68abebb69cd61f16c79c8388301e6ebe77a73959ba3dbe086c878b3afd1523f6943ddfca228e1115cbaade49c29c2e5bb620feab9214dcbfba11
SHA512
8baf5548d5772fa62fef2a4ac2fa7dc83bcf7fda178410e9bf675679ea77976f72548a0794ced6856ea538d02403a3c522a66cbf2e37f506b4546489a689ce92
DIST mongo-python-driver-4.13.2.gh.tar.gz 2227437 BLAKE2B
3aa6d0feedc6a33eb4e9299d85eeab2a9638bf713cfadf9f4018f6bd668758d3afd5b9b4b71dec037fb3f99e89cc34e299e1d9b4521c8ace9da9ce50ae95142b
SHA512
845cf92e702a9970f2ef1b5085fffcca96021e0f2fc5133e24b2860482dafabe7770d9421922659d0c6008aac1d5a70834ee4f1728a648fd83e6d33bc33568b0
-DIST mongo-python-driver-4.14.0.gh.tar.gz 2270296 BLAKE2B
9e417ff0078dcc84992d9f7238b42aece900b7d1345fdd073a0dcc6a01377f40f51a8ad1318bab62d96c3739910f2c3be96f355aafadac805abfe5dd801a6155
SHA512
be26f052226784c2b19454740d956b129353afe75d67649504fba208c7fa9c599b782ab40cf4574577759de54a13ed817e295ba7f8b36667181095b5cb67a4bd
DIST mongo-python-driver-4.14.1.gh.tar.gz 2271379 BLAKE2B
5a1ce13c5275657ee3d64fc0450a20e9c6c3bbfd91bfde6e6e3e8f143b95ea63d18b5cf2b8ba3b707f642eea900894a56889d6bf1d7d9f11f6cfa556a9b7b10b
SHA512
087c0450ee1d261cdcb8558d75b4749395058773a33849d94824e2fca0157d0eb4c3f5545a4ddfc0b1bc645a52988f515a90be978f4f88c6a3db4dffa2f9ff9e
DIST mongo-python-driver-4.15.0.gh.tar.gz 2535131 BLAKE2B
6d8915d0fc2f2aff41a085d11d64d761cbf6d8edf7636200fefd1e8e8060b14f6f3cdc2e437b0328f586bd575ad1ea8b212e415279162e47c590de95508752c8
SHA512
a1c3674f4abf09ee1e97fb0a5acfa00c7be111a75457ca50d777c949bb09e4e6f0b11bc718c8d416e72710107812efbeb4302f46b679a73514348a8cfcc69f1a
diff --git a/dev-python/pymongo/pymongo-4.11.3.ebuild
b/dev-python/pymongo/pymongo-4.11.3.ebuild
deleted file mode 100644
index d9c2d27c4742..000000000000
--- a/dev-python/pymongo/pymongo-4.11.3.ebuild
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390
~sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
-
test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
-
test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/test_client.py::ClientUnitTest::test_detected_environment_logging
-
test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
-
test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
-
test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
-
- # broken async tests?
- test/asynchronous/test_encryption.py
- )
-
- local run_separately=(
- # need to run some tests separately and then restart mongodb
- # to prevent it from crashing
- # https://bugs.gentoo.org/934389
- # note that this list must not overlap with EPYTEST_DESELECT
- test/test_bulk.py
- test/test_change_stream.py
- test/test_collection.py
- test/test_crud_unified.py
- test/test_gridfs.py
- )
- local run_separately2=(
- test/test_command_monitoring.py
- test/test_connection_monitoring.py
- test/test_cursor.py
- test/test_database.py
- test/test_grid_file.py
- )
- local run_separately3=(
- test/test_gridfs_bucket.py
- test/test_monitoring.py
- )
- local run_separately_async=(
- test/asynchronous/test_database.py
- test/asynchronous/test_grid_file.py
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local stage failed=
- for stage in {1..6}; do
- # Now, the hard part: we need to find a free port for mongod.
- # We're just trying to run it random port numbers and check the
log
- # for bind errors. It shall be noted that 'mongod --fork' does
not
- # return failure when it fails to bind.
-
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- LC_ALL=C \
- mongod --dbpath "${dbpath}" --nojournal \
- --bind_ip ${DB_IP} --port ${DB_PORT} \
- --unixSocketPrefix "${TMPDIR}" \
- --logpath "${logpath}" --fork \
- && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S
"${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See
the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- local async=( -p asyncio -m default_async )
- local def=( -p asyncio -m "default or encryption" )
- case ${stage} in
- 1)
- nonfatal epytest "${def[@]}"
"${run_separately[@]}" || failed=1
- ;;
- 2)
- nonfatal epytest "${def[@]}"
"${run_separately2[@]}" || failed=1
- ;;
- 3)
- nonfatal epytest "${def[@]}"
"${run_separately3[@]}" || failed=1
- ;;
- 4)
- EPYTEST_DESELECT+=(
- "${run_separately[@]}"
- "${run_separately2[@]}"
- "${run_separately3[@]}"
- )
- nonfatal epytest "${def[@]}" || failed=1
- ;;
- 5)
- nonfatal epytest "${async[@]}"
"${run_separately_async[@]}" || failed=1
- ;;
- 6)
- EPYTEST_DESELECT+=(
- "${run_separately_async[@]}"
- )
- nonfatal epytest "${async[@]}" || failed=1
- ;;
- esac
-
- mongod --dbpath "${dbpath}" --shutdown || die
- done
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pymongo/pymongo-4.13.0.ebuild
b/dev-python/pymongo/pymongo-4.13.0.ebuild
deleted file mode 100644
index 986cb41ec153..000000000000
--- a/dev-python/pymongo/pymongo-4.13.0.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390
~sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-
- # upstream forces setup.py build_ext -i in their setuptools hack
- find -name '*.so' -delete || die
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
-
test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
-
test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/test_client.py::ClientUnitTest::test_detected_environment_logging
-
test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
-
test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/asynchronous/test_srv_polling.py
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
-
test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
-
test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
-
- # broken async tests?
- test/asynchronous/test_encryption.py
-
- # -Werror
-
test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
-
test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
-
- # fragile to timing? Internet?
- test/test_client.py::TestClient::test_repr_srv_host
- test/asynchronous/test_client.py::TestClient::test_repr_srv_host
-
test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local failed=
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- # mongodb is extremely inefficient
- #
https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits
- ulimit -n 64000 || die
-
- local mongod_options=(
- --dbpath "${dbpath}"
- --bind_ip "${DB_IP}"
- --port "${DB_PORT}"
- --unixSocketPrefix "${TMPDIR}"
- --logpath "${logpath}"
- --fork
-
- # try to reduce resource use
- --wiredTigerCacheSizeGB 0.25
- )
-
- LC_ALL=C mongod "${mongod_options[@]}" && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]];
then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the
server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- nonfatal epytest -p asyncio -p rerunfailures --reruns=5 \
- -m "default or default_async or encryption" || failed=1
-
- mongod --dbpath "${dbpath}" --shutdown || die
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pymongo/pymongo-4.14.0.ebuild
b/dev-python/pymongo/pymongo-4.14.0.ebuild
deleted file mode 100644
index caa8e7357eea..000000000000
--- a/dev-python/pymongo/pymongo-4.14.0.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv
~s390 ~sparc ~x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-EPYTEST_RERUNS=5
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-
- # upstream forces setup.py build_ext -i in their setuptools hack
- find -name '*.so' -delete || die
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local EPYTEST_DESELECT=(
- # network-sandbox
-
test/asynchronous/test_async_loop_unblocked.py::TestClientLoopUnblocked::test_client_does_not_block_loop
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
-
test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
-
test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
-
test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
-
test/test_client.py::ClientUnitTest::test_detected_environment_logging
-
test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
-
test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
-
test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/asynchronous/test_srv_polling.py
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
-
test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
-
test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
-
test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
-
- # broken async tests?
- test/asynchronous/test_encryption.py
-
- # -Werror
-
test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
-
test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
-
- # fragile to timing? Internet?
- test/test_client.py::TestClient::test_repr_srv_host
- test/asynchronous/test_client.py::TestClient::test_repr_srv_host
-
test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local failed=
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- # mongodb is extremely inefficient
- #
https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits
- ulimit -n 64000 || die
-
- local mongod_options=(
- --dbpath "${dbpath}"
- --bind_ip "${DB_IP}"
- --port "${DB_PORT}"
- --unixSocketPrefix "${TMPDIR}"
- --logpath "${logpath}"
- --fork
-
- # try to reduce resource use
- --wiredTigerCacheSizeGB 0.25
- )
-
- LC_ALL=C mongod "${mongod_options[@]}" && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]];
then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the
server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- nonfatal epytest -m "default or default_async or encryption" || failed=1
-
- mongod --dbpath "${dbpath}" --shutdown || die
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}