From 90d0eb68874b3391f941df55de2efa30f911ab45 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Tue, 16 Jul 2024 16:19:48 -0400 Subject: [PATCH 1/4] PYTHON-4556 Migrate to macOS 14 in AWS --- .evergreen/config.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index f085253541..ab9961b93f 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -2219,16 +2219,16 @@ axes: - id: platform display_name: OS values: - - id: macos-1100 - display_name: "macOS 11.00" - run_on: macos-1100 + - id: macos + display_name: "macOS" + run_on: macos-14 variables: skip_EC2_auth_test: true skip_ECS_auth_test: true skip_web_identity_auth_test: true - - id: macos-1100-arm64 - display_name: "macOS 11.00 Arm64" - run_on: macos-1100-arm64 + - id: macos-arm64 + display_name: "macOS Arm64" + run_on: macos-14-arm64 variables: skip_EC2_auth_test: true skip_ECS_auth_test: true @@ -2629,12 +2629,12 @@ buildvariants: platform: # MacOS introduced SSL support with MongoDB >= 3.2. # Older server versions (2.6, 3.0) are supported without SSL. - - macos-1100 + - macos auth: "*" ssl: "*" exclude_spec: # No point testing with SSL without auth. - - platform: macos-1100 + - platform: macos auth: "noauth" ssl: "ssl" display_name: "${platform} ${auth} ${ssl}" @@ -2652,7 +2652,7 @@ buildvariants: - matrix_name: "test-macos-arm64" matrix_spec: platform: - - macos-1100-arm64 + - macos-arm64 auth-ssl: "*" display_name: "${platform} ${auth-ssl}" tasks: @@ -2666,7 +2666,7 @@ buildvariants: - matrix_name: "test-macos-encryption" matrix_spec: platform: - - macos-1100 + - macos auth: "auth" ssl: "nossl" encryption: "*" @@ -2675,7 +2675,7 @@ buildvariants: rules: - if: encryption: ["encryption", "encryption_crypt_shared"] - platform: macos-1100 + platform: macos auth: "auth" ssl: "nossl" then: @@ -2743,7 +2743,7 @@ buildvariants: - matrix_name: "tests-pyopenssl-macOS" matrix_spec: - platform: macos-1100 + platform: macos auth: "auth" ssl: "ssl" pyopenssl: "*" @@ -3077,7 +3077,7 @@ buildvariants: - matrix_name: "ocsp-test-macos" matrix_spec: - platform: macos-1100 + platform: macos mongodb-version: ["4.4", "5.0", "6.0", "7.0", "8.0", "latest"] auth: "noauth" ssl: "ssl" @@ -3089,7 +3089,7 @@ buildvariants: - matrix_name: "oidc-auth-test" matrix_spec: - platform: [ rhel8, macos-1100, windows-64-vsMulti-small ] + platform: [ rhel8, macos, windows-64-vsMulti-small ] display_name: "OIDC Auth ${platform}" tasks: - name: testoidc_task_group @@ -3125,7 +3125,7 @@ buildvariants: - matrix_name: "aws-auth-test-mac" matrix_spec: - platform: [macos-1100] + platform: [macos] display_name: "MONGODB-AWS Auth ${platform} ${python-version-mac}" tasks: - name: "aws-auth-test-4.4" From 0396971fd9ae6545de3a3e93f4b81280556e3918 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Tue, 16 Jul 2024 16:42:17 -0400 Subject: [PATCH 2/4] PYTHON-4558 Fix coverage and XML results for async tests --- .evergreen/run-tests.sh | 28 ++++++++++++---------------- .github/workflows/test-python.yml | 5 ++--- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 0147a7bc51..c93c3b82ac 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -30,6 +30,7 @@ set -o xtrace AUTH=${AUTH:-noauth} SSL=${SSL:-nossl} +TEST_SUITES="test/ test/asynchronous/" TEST_ARGS="${*:1}" export PIP_QUIET=1 # Quiet by default @@ -95,7 +96,7 @@ if [ -n "$TEST_LOADBALANCER" ]; then export LOAD_BALANCER=1 export SINGLE_MONGOS_LB_URI="${SINGLE_MONGOS_LB_URI:-mongodb://127.0.0.1:8000/?loadBalanced=true}" export MULTI_MONGOS_LB_URI="${MULTI_MONGOS_LB_URI:-mongodb://127.0.0.1:8001/?loadBalanced=true}" - export TEST_ARGS="test/test_load_balancer.py" + export TEST_SUITES="test/test_load_balancer.py" fi if [ "$SSL" != "nossl" ]; then @@ -171,9 +172,7 @@ if [ -n "$TEST_ENCRYPTION" ]; then export PATH=$CRYPT_SHARED_DIR:$PATH fi # Only run the encryption tests. - if [ -z "$TEST_ARGS" ]; then - TEST_ARGS="test/test_encryption.py" - fi + TEST_SUITES="test/test_encryption.py" fi if [ -n "$TEST_FLE_AZURE_AUTO" ] || [ -n "$TEST_FLE_GCP_AUTO" ]; then @@ -187,9 +186,7 @@ if [ -n "$TEST_FLE_AZURE_AUTO" ] || [ -n "$TEST_FLE_GCP_AUTO" ]; then exit 1 fi - if [ -z "$TEST_ARGS" ]; then - TEST_ARGS="test/test_on_demand_csfle.py" - fi + TEST_SUITES="test/test_on_demand_csfle.py" fi if [ -n "$TEST_INDEX_MANAGEMENT" ]; then @@ -198,36 +195,36 @@ if [ -n "$TEST_INDEX_MANAGEMENT" ]; then set +x export DB_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" set -x - TEST_ARGS="test/test_index_management.py" + TEST_SUITES="test/test_index_management.py" fi if [ -n "$TEST_DATA_LAKE" ] && [ -z "$TEST_ARGS" ]; then - TEST_ARGS="test/test_data_lake.py" + TEST_SUITES="test/test_data_lake.py" fi if [ -n "$TEST_ATLAS" ]; then - TEST_ARGS="test/atlas/test_connection.py" + TEST_SUITES="test/atlas/test_connection.py" fi if [ -n "$TEST_OCSP" ]; then python -m pip install ".[ocsp]" - TEST_ARGS="test/ocsp/test_ocsp.py" + TEST_SUITES="test/ocsp/test_ocsp.py" fi if [ -n "$TEST_AUTH_AWS" ]; then python -m pip install ".[aws]" - TEST_ARGS="test/auth_aws/test_auth_aws.py" + TEST_SUITES="test/auth_aws/test_auth_aws.py" fi if [ -n "$TEST_AUTH_OIDC" ]; then python -m pip install ".[aws]" - TEST_ARGS="test/auth_oidc/test_auth_oidc.py $TEST_ARGS" + TEST_SUITES="test/auth_oidc/test_auth_oidc.py $TEST_ARGS" fi if [ -n "$PERF_TEST" ]; then python -m pip install simplejson start_time=$(date +%s) - TEST_ARGS="test/performance/perf_test.py" + TEST_SUITES="test/performance/perf_test.py" fi echo "Running $AUTH tests over $SSL with python $(which python)" @@ -257,8 +254,7 @@ PIP_QUIET=0 python -m pip list if [ -z "$GREEN_FRAMEWORK" ]; then # Use --capture=tee-sys so pytest prints test output inline: # https://docs.pytest.org/en/stable/how-to/capture-stdout-stderr.html - python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 $TEST_ARGS - python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 test/asynchronous/ $TEST_ARGS + python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 $TEST_SUITES $TEST_ARGS else python green_framework_test.py $GREEN_FRAMEWORK -v $TEST_ARGS fi diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index 3a03be8eed..4d514726cd 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -205,12 +205,11 @@ jobs: python-version: '3.8' - name: Start MongoDB uses: supercharge/mongodb-github-action@1.10.0 - - name: Run Test + - name: Run connect test from sdist shell: bash run: | cd sdist/test ls which python pip install -e ".[test]" - pytest -v - pytest -v test/asynchronous/ + PYMONGO_MUST_CONNECT=1 pytest -v test/test_client_context.py From 744b8bb8c732b0107f9613d8e09219a399716f23 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Wed, 17 Jul 2024 14:48:49 -0400 Subject: [PATCH 3/4] Revert "PYTHON-4558 Fix coverage and XML results for async tests" This reverts commit 0396971fd9ae6545de3a3e93f4b81280556e3918. --- .evergreen/run-tests.sh | 28 ++++++++++++++++------------ .github/workflows/test-python.yml | 5 +++-- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index c93c3b82ac..0147a7bc51 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -30,7 +30,6 @@ set -o xtrace AUTH=${AUTH:-noauth} SSL=${SSL:-nossl} -TEST_SUITES="test/ test/asynchronous/" TEST_ARGS="${*:1}" export PIP_QUIET=1 # Quiet by default @@ -96,7 +95,7 @@ if [ -n "$TEST_LOADBALANCER" ]; then export LOAD_BALANCER=1 export SINGLE_MONGOS_LB_URI="${SINGLE_MONGOS_LB_URI:-mongodb://127.0.0.1:8000/?loadBalanced=true}" export MULTI_MONGOS_LB_URI="${MULTI_MONGOS_LB_URI:-mongodb://127.0.0.1:8001/?loadBalanced=true}" - export TEST_SUITES="test/test_load_balancer.py" + export TEST_ARGS="test/test_load_balancer.py" fi if [ "$SSL" != "nossl" ]; then @@ -172,7 +171,9 @@ if [ -n "$TEST_ENCRYPTION" ]; then export PATH=$CRYPT_SHARED_DIR:$PATH fi # Only run the encryption tests. - TEST_SUITES="test/test_encryption.py" + if [ -z "$TEST_ARGS" ]; then + TEST_ARGS="test/test_encryption.py" + fi fi if [ -n "$TEST_FLE_AZURE_AUTO" ] || [ -n "$TEST_FLE_GCP_AUTO" ]; then @@ -186,7 +187,9 @@ if [ -n "$TEST_FLE_AZURE_AUTO" ] || [ -n "$TEST_FLE_GCP_AUTO" ]; then exit 1 fi - TEST_SUITES="test/test_on_demand_csfle.py" + if [ -z "$TEST_ARGS" ]; then + TEST_ARGS="test/test_on_demand_csfle.py" + fi fi if [ -n "$TEST_INDEX_MANAGEMENT" ]; then @@ -195,36 +198,36 @@ if [ -n "$TEST_INDEX_MANAGEMENT" ]; then set +x export DB_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" set -x - TEST_SUITES="test/test_index_management.py" + TEST_ARGS="test/test_index_management.py" fi if [ -n "$TEST_DATA_LAKE" ] && [ -z "$TEST_ARGS" ]; then - TEST_SUITES="test/test_data_lake.py" + TEST_ARGS="test/test_data_lake.py" fi if [ -n "$TEST_ATLAS" ]; then - TEST_SUITES="test/atlas/test_connection.py" + TEST_ARGS="test/atlas/test_connection.py" fi if [ -n "$TEST_OCSP" ]; then python -m pip install ".[ocsp]" - TEST_SUITES="test/ocsp/test_ocsp.py" + TEST_ARGS="test/ocsp/test_ocsp.py" fi if [ -n "$TEST_AUTH_AWS" ]; then python -m pip install ".[aws]" - TEST_SUITES="test/auth_aws/test_auth_aws.py" + TEST_ARGS="test/auth_aws/test_auth_aws.py" fi if [ -n "$TEST_AUTH_OIDC" ]; then python -m pip install ".[aws]" - TEST_SUITES="test/auth_oidc/test_auth_oidc.py $TEST_ARGS" + TEST_ARGS="test/auth_oidc/test_auth_oidc.py $TEST_ARGS" fi if [ -n "$PERF_TEST" ]; then python -m pip install simplejson start_time=$(date +%s) - TEST_SUITES="test/performance/perf_test.py" + TEST_ARGS="test/performance/perf_test.py" fi echo "Running $AUTH tests over $SSL with python $(which python)" @@ -254,7 +257,8 @@ PIP_QUIET=0 python -m pip list if [ -z "$GREEN_FRAMEWORK" ]; then # Use --capture=tee-sys so pytest prints test output inline: # https://docs.pytest.org/en/stable/how-to/capture-stdout-stderr.html - python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 $TEST_SUITES $TEST_ARGS + python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 $TEST_ARGS + python -m pytest -v --capture=tee-sys --durations=5 --maxfail=10 test/asynchronous/ $TEST_ARGS else python green_framework_test.py $GREEN_FRAMEWORK -v $TEST_ARGS fi diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index 4d514726cd..3a03be8eed 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -205,11 +205,12 @@ jobs: python-version: '3.8' - name: Start MongoDB uses: supercharge/mongodb-github-action@1.10.0 - - name: Run connect test from sdist + - name: Run Test shell: bash run: | cd sdist/test ls which python pip install -e ".[test]" - PYMONGO_MUST_CONNECT=1 pytest -v test/test_client_context.py + pytest -v + pytest -v test/asynchronous/ From 7ec066527504e9f41de861cb705352ac8cebcede Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Wed, 17 Jul 2024 15:10:13 -0400 Subject: [PATCH 4/4] PYTHON-4556 Update release task too --- .evergreen/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index ab9961b93f..9372279610 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -1121,7 +1121,7 @@ tasks: - name: "release-mac" tags: ["release_tag"] - run_on: macos-1100 + run_on: macos-11 commands: - func: "build release" vars: