diff options
Diffstat (limited to 'dev-python/pymongo')
-rw-r--r-- | dev-python/pymongo/Manifest | 8 | ||||
-rw-r--r-- | dev-python/pymongo/pymongo-4.11.1.ebuild (renamed from dev-python/pymongo/pymongo-4.10.0.ebuild) | 21 | ||||
-rw-r--r-- | dev-python/pymongo/pymongo-4.9.1.ebuild | 228 | ||||
-rw-r--r-- | dev-python/pymongo/pymongo-4.9.2.ebuild | 228 |
4 files changed, 17 insertions, 468 deletions
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest index 697ab191ab78..7686f1506e37 100644 --- a/dev-python/pymongo/Manifest +++ b/dev-python/pymongo/Manifest @@ -1,15 +1,11 @@ -DIST mongo-python-driver-4.10.0.gh.tar.gz 1948389 BLAKE2B 19429aad69baa013226a4b36de5c654fe074bdb39a462d588a1a4298a35fd8bbf941d8189dbe632e25619fb691a960c98988e205e82796ec1572d2dc63379b2d SHA512 3153e97ad6e749a35d071ef91eb870be76d75f404526e5275cc5ab19470f09a8450debba519cb10bd79191d1b1dd8cfc04882b1d7ef4898471b14bf131fa8c83 DIST mongo-python-driver-4.10.1.gh.tar.gz 1957402 BLAKE2B 66f7c166af7c7467ca7cb20266d313e453ab485516c17e8eda5a4771b4818778c00ad314e7bd5868a95f2045f879a73617f64549db634257f1abbc7a9a095181 SHA512 200bda479cd951beef6234a15120a043b4399cadd8ef2fda69bfcd6904e1e0e43d179626092dc81d89f48806768bf8147c55108c91620920f5544f712bf3be51 +DIST mongo-python-driver-4.11.1.gh.tar.gz 2111810 BLAKE2B 120168770b1f4a61f7f6327bb7b933e1bf848871ed7a6cb152837a95b438b17236e6b10b1fe54fc29a0791d8ad785033b2d726129dae69e9403ff5b1e3c2b929 SHA512 64f7d2baa90c23f3b5d91192cc4bcc6d3199f81b6b2844c19a1059779a5e6681a45e65872452230b6c1c8c193749324eb30af75f080f8830f9642f575da80bf9 DIST mongo-python-driver-4.11.gh.tar.gz 2111008 BLAKE2B 0f65410b5eead108dec0016c23c3e004251ab2db04f3a7b2a31a8757abdddf526cea695400c8cdf2bb4f7fc8c711ee4d2e5f883d0db8b309843a71e194e75016 SHA512 454109e9c9da8fec6785f50e34dfe253f9fd1a82d69cadd5c0366590c6ca6aeac180f16a0e011f855e72c6a949a0cf06f477c7396d4c9f4da6f936646a5d8c20 DIST mongo-python-driver-4.7.2.gh.tar.gz 1548375 BLAKE2B a40dbe153f36cdf2836583aa0116f447d08376ce7980a09d0f21cea37a34ab318e5ff0b34b7fe1721cf7fc5d5443a1dbe0982d59cb941b0da8a4a99abdc7b19d SHA512 1de8bd14301e365eb53252dedaaaf8c9056dd534662543e2a500511e5f5f67a69e1f11a8a8575efdbd8852bb47b632d59762f66024d32973d20dc17c4448b9be DIST mongo-python-driver-4.8.0.gh.tar.gz 1550149 BLAKE2B 9462480b17f3da54918883fbcb28a4324e6a00a9c2c34b16267ebcd378170f7fd34ec7290f7a0e3c4c38a5f1f803428cb6a0c64a562d956b3a19c37130697012 SHA512 17513a278187424fea1876d288651e385be759f23eebceca8d04a15182b15ffd64956193bb53e4a90e8b2197c2ebbade274737091f5d2e5fb4398539674c41df -DIST mongo-python-driver-4.9.1.gh.tar.gz 1937311 BLAKE2B 9312c7df50f86dad7dd713b34aba0a87dd9f878b115b3c00ae9e0825c883c869f57e0d55d552b1b4bf9715930840a540572b451d296e185085c4c0c707855811 SHA512 e616418c90088bfc328505dea315a225bfcc942fa29dcc348d3b80d0fb329b7e8fe9d6164c0e13a0562e6126535cc7d04c2cf497a39a04071f6db8af3c8ed1f1 -DIST mongo-python-driver-4.9.2.gh.tar.gz 1941838 BLAKE2B 07ba597eae08cd1116e0aa42e5c9e8af0024d69d8ee4acc33cd84a80cd9df77028a2b2bc7a1d6563ca1ebe485851d0483c804bce944dc9f1f5ed48b44fe9ae7a SHA512 40fdb22ef5c602e96f735b948fe61fd1a325f51f264087027d58319eaa382f37638cf1d0dabaaf9c0a4f556698638b26bdc5431c9147a245b7b4e515b7b7aac9 -EBUILD pymongo-4.10.0.ebuild 6852 BLAKE2B 8f7f4d5d2f2899a5156b930223e699c9c150bd86521d97a57dfd00a0d4393ecb62a1b818457844c1caf24cc95591853b63427058fc61c924384f174933414db6 SHA512 f79923f2a0e3e64df6fcaa8512cbe417d1f62823de148fe12d6b4a9f3293774d6ed1ff745097c86dcb997f009262452ee2506afecfd63bd6d81428e42fff9c8e EBUILD pymongo-4.10.1.ebuild 6858 BLAKE2B adade6fd0fca5a17b98aa90f9d1c914cfa61a2cd9b303ed30e561a83bd53f0cadac92847b401de039b3cf38f2d5b33bb4583c0ec3c88b13b2fd42bcdae35a043 SHA512 7be791293a29b142b6513cc6ee50f25311c87cbba5a937c09f0dfd8f4a1d4bdb050f603bb5b90c39ff723b105100c45566f432c33ca95324b609d77a6e269cd4 +EBUILD pymongo-4.11.1.ebuild 7066 BLAKE2B b4c5eb835af74e39f51f546d9abdce407336137d15469f4efd79637dbf03cd406991ad9225a7156b9afa9de3e81303aa8c76e920a1c8be7dc3468d6d63c559b2 SHA512 2c0a4b8b674c9fc337220c035369f1e4406ba15addcd8e48f8f127bb75fc88d5d0ef11ba4319a4428e549ced43d18db07f84e45349b8b69931a690d50943f499 EBUILD pymongo-4.11.ebuild 7066 BLAKE2B b4c5eb835af74e39f51f546d9abdce407336137d15469f4efd79637dbf03cd406991ad9225a7156b9afa9de3e81303aa8c76e920a1c8be7dc3468d6d63c559b2 SHA512 2c0a4b8b674c9fc337220c035369f1e4406ba15addcd8e48f8f127bb75fc88d5d0ef11ba4319a4428e549ced43d18db07f84e45349b8b69931a690d50943f499 EBUILD pymongo-4.7.2.ebuild 5267 BLAKE2B 1045523964d4f0482bb1fd5c57841684479dae05b9135f873008d41de4163834bbc1d6d0249e183aec0e5f7751ea7740d2dc05ae0ec69048f1b24e5d1f215675 SHA512 3e19264bd6944e334d673ac0303e738dccd61b68e9b9d7e9cdd06eeea811d52cc5206d4e8ff57e88cf928ac5b47cc69a77bd5dc18aab801b2db8dcbe894f4456 EBUILD pymongo-4.8.0.ebuild 5839 BLAKE2B add017703bd0be4c70abe7791ed3cf19453ab63f04d61e0b8139e6f59677ebaf002118b0e055ac23cb4e56c67033326abb16c73d76827698719e10900cebb90e SHA512 6e4ec05b25bfafd953d8254b6ceaf28fa5784cda21af76a9b27329af2a909aca7d43d242514b1b2dfb7db294e43eee17c15ad26bd73ed0c4fcc382e9cc7205c2 -EBUILD pymongo-4.9.1.ebuild 6852 BLAKE2B 8f7f4d5d2f2899a5156b930223e699c9c150bd86521d97a57dfd00a0d4393ecb62a1b818457844c1caf24cc95591853b63427058fc61c924384f174933414db6 SHA512 f79923f2a0e3e64df6fcaa8512cbe417d1f62823de148fe12d6b4a9f3293774d6ed1ff745097c86dcb997f009262452ee2506afecfd63bd6d81428e42fff9c8e -EBUILD pymongo-4.9.2.ebuild 6852 BLAKE2B 8f7f4d5d2f2899a5156b930223e699c9c150bd86521d97a57dfd00a0d4393ecb62a1b818457844c1caf24cc95591853b63427058fc61c924384f174933414db6 SHA512 f79923f2a0e3e64df6fcaa8512cbe417d1f62823de148fe12d6b4a9f3293774d6ed1ff745097c86dcb997f009262452ee2506afecfd63bd6d81428e42fff9c8e MISC metadata.xml 880 BLAKE2B 024d83cdf3d8cf94cdc98153a6b429550579d494b053becfe5cda0a7a7f3852632d7155e71116a9ab751e6542fe63985755f4eeb147914bc8dbb1e9fac560434 SHA512 c6110fd18fa7f7819299b5de919bfc0ce407d653115d34d297513ce3a4acd2e16399d6f327c61bc5d4ef8aa6776f84750cff37798415ca4bd59c6fd19961d891 diff --git a/dev-python/pymongo/pymongo-4.10.0.ebuild b/dev-python/pymongo/pymongo-4.11.1.ebuild index 286a8d403b6a..05670517ffe8 100644 --- a/dev-python/pymongo/pymongo-4.10.0.ebuild +++ b/dev-python/pymongo/pymongo-4.11.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -115,6 +115,9 @@ python_test() { # hangs? test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks + + # broken async tests? + test/asynchronous/test_encryption.py ) local run_separately=( @@ -127,7 +130,6 @@ python_test() { test/test_collection.py test/test_crud_unified.py test/test_gridfs.py - test/test_gridfs_bucket.py ) local run_separately2=( test/test_command_monitoring.py @@ -135,6 +137,9 @@ python_test() { 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=( @@ -145,7 +150,7 @@ python_test() { if ! use test-full; then # .invalid is guaranteed to return NXDOMAIN per RFC 6761 local -x DB_IP=mongodb.invalid - epytest + epytest -p asyncio return fi @@ -157,7 +162,7 @@ python_test() { local logpath=${TMPDIR}/mongod.log local stage failed= - for stage in {1..5}; do + 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 @@ -202,16 +207,20 @@ python_test() { 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 ;; - 4) + 5) nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1 ;; - 5) + 6) EPYTEST_DESELECT+=( "${run_separately_async[@]}" ) diff --git a/dev-python/pymongo/pymongo-4.9.1.ebuild b/dev-python/pymongo/pymongo-4.9.1.ebuild deleted file mode 100644 index 286a8d403b6a..000000000000 --- a/dev-python/pymongo/pymongo-4.9.1.ebuild +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright 1999-2024 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 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 - ) - - 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 - test/test_gridfs_bucket.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 - 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 - 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..5}; 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) - EPYTEST_DESELECT+=( - "${run_separately[@]}" - "${run_separately2[@]}" - ) - nonfatal epytest "${def[@]}" || failed=1 - ;; - 4) - nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1 - ;; - 5) - 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.9.2.ebuild b/dev-python/pymongo/pymongo-4.9.2.ebuild deleted file mode 100644 index 286a8d403b6a..000000000000 --- a/dev-python/pymongo/pymongo-4.9.2.ebuild +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright 1999-2024 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 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 - ) - - 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 - test/test_gridfs_bucket.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 - 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 - 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..5}; 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) - EPYTEST_DESELECT+=( - "${run_separately[@]}" - "${run_separately2[@]}" - ) - nonfatal epytest "${def[@]}" || failed=1 - ;; - 4) - nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1 - ;; - 5) - 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 -} |