diff --git a/.evergreen/generated_configs/functions.yml b/.evergreen/generated_configs/functions.yml index 06baa32e8..a28cd2596 100644 --- a/.evergreen/generated_configs/functions.yml +++ b/.evergreen/generated_configs/functions.yml @@ -143,6 +143,7 @@ functions: - NO_EXT - COMPRESSORS - MONGODB_API_VERSION + - REQUIRE_API_VERSION - DEBUG_LOG - ORCHESTRATION_FILE - OCSP_SERVER_TYPE diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 4676ab80f..32754af9a 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -1,28 +1,4 @@ tasks: - # Atlas connect tests - - name: test-atlas-connect - commands: - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: atlas_connect - tags: [atlas_connect] - - # Atlas data lake tests - - name: test-atlas-data-lake-without_ext - commands: - - func: run tests - vars: - TEST_NAME: data_lake - NO_EXT: "1" - tags: [atlas_data_lake] - - name: test-atlas-data-lake-with_ext - commands: - - func: run tests - vars: - TEST_NAME: data_lake - tags: [atlas_data_lake] - # Aws lambda tests - name: test-aws-lambda-deployed commands: @@ -33,7 +9,7 @@ tasks: tags: [aws_lambda] # Aws tests - - name: test-auth-aws-4.4-regular + - name: test-auth-aws-4.4-regular-python3.9 commands: - func: run server vars: @@ -44,105 +20,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: regular + PYTHON_VERSION: "3.9" tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-4.4-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-4.4-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-4.4-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-4.4-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-4.4-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-4.4-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-4.4-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "4.4" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-5.0-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-5.0-assume-role + - name: test-auth-aws-5.0-assume-role-python3.10 commands: - func: run server vars: @@ -153,105 +33,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: assume-role + PYTHON_VERSION: "3.10" tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-5.0-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-5.0-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-5.0-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-5.0-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-5.0-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-5.0-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "5.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-6.0-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-6.0-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-6.0-ec2 + - name: test-auth-aws-6.0-ec2-python3.11 commands: - func: run server vars: @@ -262,105 +46,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: ec2 + PYTHON_VERSION: "3.11" tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-6.0-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-6.0-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-6.0-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-6.0-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-6.0-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "6.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-7.0-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-7.0-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-7.0-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-7.0-env-creds + - name: test-auth-aws-7.0-env-creds-python3.12 commands: - func: run server vars: @@ -371,105 +59,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: env-creds + PYTHON_VERSION: "3.12" tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-7.0-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-7.0-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-7.0-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-7.0-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "7.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-8.0-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-8.0-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-8.0-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-8.0-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-8.0-session-creds + - name: test-auth-aws-8.0-session-creds-python3.13 commands: - func: run server vars: @@ -480,105 +72,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: session-creds + PYTHON_VERSION: "3.13" tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-8.0-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-8.0-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-8.0-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: "8.0" - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-rapid-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-rapid-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-rapid-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-rapid-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-rapid-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-rapid-web-identity + - name: test-auth-aws-rapid-web-identity-python3.9 commands: - func: run server vars: @@ -589,20 +85,9 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: web-identity + PYTHON_VERSION: "3.9" tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-rapid-ecs - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: rapid - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ecs - tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-rapid-web-identity-session-name + - name: test-auth-aws-rapid-web-identity-session-name-python3.9 commands: - func: run server vars: @@ -614,80 +99,9 @@ tasks: TEST_NAME: auth_aws SUB_TEST_NAME: web-identity AWS_ROLE_SESSION_NAME: test + PYTHON_VERSION: "3.9" tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-latest-regular - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: regular - tags: [auth-aws, auth-aws-regular] - - name: test-auth-aws-latest-assume-role - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: assume-role - tags: [auth-aws, auth-aws-assume-role] - - name: test-auth-aws-latest-ec2 - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: ec2 - tags: [auth-aws, auth-aws-ec2] - - name: test-auth-aws-latest-env-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: env-creds - tags: [auth-aws, auth-aws-env-creds] - - name: test-auth-aws-latest-session-creds - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: session-creds - tags: [auth-aws, auth-aws-session-creds] - - name: test-auth-aws-latest-web-identity - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - tags: [auth-aws, auth-aws-web-identity] - - name: test-auth-aws-latest-ecs + - name: test-auth-aws-latest-ecs-python3.10 commands: - func: run server vars: @@ -698,20 +112,8 @@ tasks: vars: TEST_NAME: auth_aws SUB_TEST_NAME: ecs + PYTHON_VERSION: "3.10" tags: [auth-aws, auth-aws-ecs] - - name: test-auth-aws-latest-web-identity-session-name - commands: - - func: run server - vars: - AUTH_AWS: "1" - VERSION: latest - - func: assume ec2 role - - func: run tests - vars: - TEST_NAME: auth_aws - SUB_TEST_NAME: web-identity - AWS_ROLE_SESSION_NAME: test - tags: [auth-aws, auth-aws-web-identity] # Backport pr tests - name: backport-pr @@ -1068,61 +470,90 @@ tasks: TEST_NAME: load_balancer tags: [load-balancer, noauth, nossl] - # Mockupdb tests - - name: test-mockupdb - commands: - - func: run tests - vars: - TEST_NAME: mockupdb - tags: [mockupdb] - # Mod wsgi tests - - name: mod-wsgi-standalone - commands: - - func: run server - vars: - TOPOLOGY: standalone - - func: run tests - vars: - TEST_NAME: mod_wsgi - SUB_TEST_NAME: standalone - tags: [mod_wsgi] - - name: mod-wsgi-replica-set + - name: mod-wsgi-replica-set-python3.9 commands: - func: run server vars: TOPOLOGY: replica_set + PYTHON_VERSION: "3.9" - func: run tests vars: TEST_NAME: mod_wsgi SUB_TEST_NAME: standalone + PYTHON_VERSION: "3.9" tags: [mod_wsgi] - - name: mod-wsgi-embedded-mode-standalone - commands: - - func: run server - vars: - TOPOLOGY: standalone - - func: run tests - vars: - TEST_NAME: mod_wsgi - SUB_TEST_NAME: embedded - tags: [mod_wsgi] - - name: mod-wsgi-embedded-mode-replica-set + - name: mod-wsgi-embedded-mode-replica-set-python3.10 commands: - func: run server vars: TOPOLOGY: replica_set + PYTHON_VERSION: "3.10" - func: run tests vars: TEST_NAME: mod_wsgi SUB_TEST_NAME: embedded + PYTHON_VERSION: "3.10" + tags: [mod_wsgi] + - name: mod-wsgi-replica-set-python3.11 + commands: + - func: run server + vars: + TOPOLOGY: replica_set + PYTHON_VERSION: "3.11" + - func: run tests + vars: + TEST_NAME: mod_wsgi + SUB_TEST_NAME: standalone + PYTHON_VERSION: "3.11" + tags: [mod_wsgi] + - name: mod-wsgi-embedded-mode-replica-set-python3.12 + commands: + - func: run server + vars: + TOPOLOGY: replica_set + PYTHON_VERSION: "3.12" + - func: run tests + vars: + TEST_NAME: mod_wsgi + SUB_TEST_NAME: embedded + PYTHON_VERSION: "3.12" + tags: [mod_wsgi] + - name: mod-wsgi-replica-set-python3.13 + commands: + - func: run server + vars: + TOPOLOGY: replica_set + PYTHON_VERSION: "3.13" + - func: run tests + vars: + TEST_NAME: mod_wsgi + SUB_TEST_NAME: standalone + PYTHON_VERSION: "3.13" tags: [mod_wsgi] - # No server tests - - name: test-no-server + # No orchestration tests + - name: test-no-orchestration-python3.9 commands: + - func: assume ec2 role - func: run tests - tags: [no-server] + vars: + PYTHON_VERSION: "3.9" + tags: [no-orchestration, python-3.9] + - name: test-no-orchestration-python3.13 + commands: + - func: assume ec2 role + - func: run tests + vars: + PYTHON_VERSION: "3.13" + tags: [no-orchestration, python-3.13] + - name: test-no-orchestration-pypy3.10 + commands: + - func: assume ec2 role + - func: run tests + vars: + PYTHON_VERSION: pypy3.10 + tags: [no-orchestration, python-pypy3.10] # Ocsp tests - name: test-ocsp-ecdsa-valid-cert-server-does-not-staple-v4.4-python3.9 diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml index 0855a2763..bcce7818a 100644 --- a/.evergreen/generated_configs/variants.yml +++ b/.evergreen/generated_configs/variants.yml @@ -64,90 +64,42 @@ buildvariants: NO_EXT: "1" # Atlas connect tests - - name: atlas-connect-rhel8-python3.9 + - name: atlas-connect-rhel8 tasks: - - name: .atlas_connect - display_name: Atlas connect RHEL8 Python3.9 + - name: .no-orchestration + display_name: Atlas connect RHEL8 run_on: - rhel87-small - expansions: - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: atlas-connect-rhel8-python3.13 - tasks: - - name: .atlas_connect - display_name: Atlas connect RHEL8 Python3.13 - run_on: - - rhel87-small - expansions: - PYTHON_BINARY: /opt/python/3.13/bin/python3 # Atlas data lake tests - - name: atlas-data-lake-ubuntu-22-python3.9 + - name: atlas-data-lake-ubuntu-22 tasks: - - name: .atlas_data_lake - display_name: Atlas Data Lake Ubuntu-22 Python3.9 + - name: .no-orchestration + display_name: Atlas Data Lake Ubuntu-22 run_on: - ubuntu2204-small expansions: - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: atlas-data-lake-ubuntu-22-python3.13 - tasks: - - name: .atlas_data_lake - display_name: Atlas Data Lake Ubuntu-22 Python3.13 - run_on: - - ubuntu2204-small - expansions: - PYTHON_BINARY: /opt/python/3.13/bin/python3 + TEST_NAME: data_lake # Aws auth tests - - name: auth-aws-ubuntu-20-python3.9 + - name: auth-aws-ubuntu-20 tasks: - name: .auth-aws - display_name: Auth AWS Ubuntu-20 Python3.9 + display_name: Auth AWS Ubuntu-20 run_on: - ubuntu2004-small - expansions: - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: auth-aws-ubuntu-20-python3.13 - tasks: - - name: .auth-aws - display_name: Auth AWS Ubuntu-20 Python3.13 - run_on: - - ubuntu2004-small - expansions: - PYTHON_BINARY: /opt/python/3.13/bin/python3 - - name: auth-aws-win64-python3.9 + - name: auth-aws-win64 tasks: - name: .auth-aws !.auth-aws-ecs - display_name: Auth AWS Win64 Python3.9 + display_name: Auth AWS Win64 run_on: - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/Python39/python.exe - - name: auth-aws-win64-python3.13 - tasks: - - name: .auth-aws !.auth-aws-ecs - display_name: Auth AWS Win64 Python3.13 - run_on: - - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/Python313/python.exe - - name: auth-aws-macos-python3.9 + - name: auth-aws-macos tasks: - name: .auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2 - display_name: Auth AWS macOS Python3.9 + display_name: Auth AWS macOS run_on: - macos-14 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3 - - name: auth-aws-macos-python3.13 - tasks: - - name: .auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2 - display_name: Auth AWS macOS Python3.13 - run_on: - - macos-14 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3 # Aws lambda tests - name: faas-lambda @@ -514,39 +466,26 @@ buildvariants: PYTHON_BINARY: /Library/Frameworks/PythonT.Framework/Versions/3.13/bin/python3t # Green framework tests - - name: green-eventlet-rhel8-python3.9 + - name: green-eventlet-rhel8 tasks: - - name: .standalone .noauth .nossl .sync_async - display_name: Green Eventlet RHEL8 Python3.9 + - name: .standard-linux .standalone-noauth-nossl .python-3.9 + display_name: Green Eventlet RHEL8 run_on: - rhel87-small expansions: GREEN_FRAMEWORK: eventlet AUTH: auth SSL: ssl - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: green-gevent-rhel8-python3.9 + - name: green-gevent-rhel8 tasks: - - name: .standalone .noauth .nossl .sync_async - display_name: Green Gevent RHEL8 Python3.9 + - name: .standard-linux .standalone-noauth-nossl + display_name: Green Gevent RHEL8 run_on: - rhel87-small expansions: GREEN_FRAMEWORK: gevent AUTH: auth SSL: ssl - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: green-gevent-rhel8-python3.13 - tasks: - - name: .standalone .noauth .nossl .sync_async - display_name: Green Gevent RHEL8 Python3.13 - run_on: - - rhel87-small - expansions: - GREEN_FRAMEWORK: gevent - AUTH: auth - SSL: ssl - PYTHON_BINARY: /opt/python/3.13/bin/python3 # Import time tests - name: import-time @@ -579,34 +518,24 @@ buildvariants: batchtime: 10080 # Mockupdb tests - - name: mockupdb-rhel8-python3.9 + - name: mockupdb-rhel8 tasks: - - name: .mockupdb - display_name: MockupDB RHEL8 Python3.9 + - name: .no-orchestration + display_name: MockupDB RHEL8 run_on: - rhel87-small expansions: - PYTHON_BINARY: /opt/python/3.9/bin/python3 + TEST_NAME: mockupdb # Mod wsgi tests - - name: mod_wsgi-ubuntu-22-python3.9 + - name: mod_wsgi-ubuntu-22 tasks: - name: .mod_wsgi - display_name: mod_wsgi Ubuntu-22 Python3.9 + display_name: mod_wsgi Ubuntu-22 run_on: - ubuntu2204-small expansions: MOD_WSGI_VERSION: "4" - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: mod_wsgi-ubuntu-22-python3.13 - tasks: - - name: .mod_wsgi - display_name: mod_wsgi Ubuntu-22 Python3.13 - run_on: - - ubuntu2204-small - expansions: - MOD_WSGI_VERSION: "4" - PYTHON_BINARY: /opt/python/3.13/bin/python3 # No c ext tests - name: no-c-ext-rhel8 @@ -617,10 +546,10 @@ buildvariants: - rhel87-small # No server tests - - name: no-server + - name: no-server-rhel8 tasks: - - name: .no-server - display_name: No server + - name: .no-orchestration + display_name: No server RHEL8 run_on: - rhel87-small @@ -845,71 +774,36 @@ buildvariants: PYTHON_BINARY: /opt/python/3.13/bin/python3 # Stable api tests - - name: stable-api-require-v1-rhel8-python3.9-auth + - name: stable-api-require-v1-rhel8-auth tasks: - - name: "!.replica_set .5.0 .noauth .nossl .sync_async" - - name: "!.replica_set .6.0 .noauth .nossl .sync_async" - - name: "!.replica_set .7.0 .noauth .nossl .sync_async" - - name: "!.replica_set .8.0 .noauth .nossl .sync_async" - - name: "!.replica_set .rapid .noauth .nossl .sync_async" - - name: "!.replica_set .latest .noauth .nossl .sync_async" - display_name: Stable API require v1 RHEL8 Python3.9 Auth + - name: .standard-linux !.replica_set-noauth-ssl .server-5.0 + - name: .standard-linux !.replica_set-noauth-ssl .server-6.0 + - name: .standard-linux !.replica_set-noauth-ssl .server-7.0 + - name: .standard-linux !.replica_set-noauth-ssl .server-8.0 + - name: .standard-linux !.replica_set-noauth-ssl .server-rapid + - name: .standard-linux !.replica_set-noauth-ssl .server-latest + display_name: Stable API require v1 RHEL8 Auth run_on: - rhel87-small expansions: AUTH: auth REQUIRE_API_VERSION: "1" MONGODB_API_VERSION: "1" - PYTHON_BINARY: /opt/python/3.9/bin/python3 tags: [versionedApi_tag] - - name: stable-api-accept-v2-rhel8-python3.9-auth + - name: stable-api-accept-v2-rhel8-auth tasks: - - name: .standalone .5.0 .noauth .nossl .sync_async - - name: .standalone .6.0 .noauth .nossl .sync_async - - name: .standalone .7.0 .noauth .nossl .sync_async - - name: .standalone .8.0 .noauth .nossl .sync_async - - name: .standalone .rapid .noauth .nossl .sync_async - - name: .standalone .latest .noauth .nossl .sync_async - display_name: Stable API accept v2 RHEL8 Python3.9 Auth + - name: .standard-linux .server-5.0 .standalone-noauth-nossl + - name: .standard-linux .server-6.0 .standalone-noauth-nossl + - name: .standard-linux .server-7.0 .standalone-noauth-nossl + - name: .standard-linux .server-8.0 .standalone-noauth-nossl + - name: .standard-linux .server-rapid .standalone-noauth-nossl + - name: .standard-linux .server-latest .standalone-noauth-nossl + display_name: Stable API accept v2 RHEL8 Auth run_on: - rhel87-small expansions: AUTH: auth ORCHESTRATION_FILE: versioned-api-testing.json - PYTHON_BINARY: /opt/python/3.9/bin/python3 - tags: [versionedApi_tag] - - name: stable-api-require-v1-rhel8-python3.13-auth - tasks: - - name: "!.replica_set .5.0 .noauth .nossl .sync_async" - - name: "!.replica_set .6.0 .noauth .nossl .sync_async" - - name: "!.replica_set .7.0 .noauth .nossl .sync_async" - - name: "!.replica_set .8.0 .noauth .nossl .sync_async" - - name: "!.replica_set .rapid .noauth .nossl .sync_async" - - name: "!.replica_set .latest .noauth .nossl .sync_async" - display_name: Stable API require v1 RHEL8 Python3.13 Auth - run_on: - - rhel87-small - expansions: - AUTH: auth - REQUIRE_API_VERSION: "1" - MONGODB_API_VERSION: "1" - PYTHON_BINARY: /opt/python/3.13/bin/python3 - tags: [versionedApi_tag] - - name: stable-api-accept-v2-rhel8-python3.13-auth - tasks: - - name: .standalone .5.0 .noauth .nossl .sync_async - - name: .standalone .6.0 .noauth .nossl .sync_async - - name: .standalone .7.0 .noauth .nossl .sync_async - - name: .standalone .8.0 .noauth .nossl .sync_async - - name: .standalone .rapid .noauth .nossl .sync_async - - name: .standalone .latest .noauth .nossl .sync_async - display_name: Stable API accept v2 RHEL8 Python3.13 Auth - run_on: - - rhel87-small - expansions: - AUTH: auth - ORCHESTRATION_FILE: versioned-api-testing.json - PYTHON_BINARY: /opt/python/3.13/bin/python3 tags: [versionedApi_tag] # Standard nonlinux tests @@ -949,30 +843,19 @@ buildvariants: tags: [standard-non-linux] # Storage engine tests - - name: storage-inmemory-rhel8-python3.9 + - name: storage-inmemory-rhel8 tasks: - - name: .standalone .noauth .nossl .4.0 .sync_async - - name: .standalone .noauth .nossl .4.2 .sync_async - - name: .standalone .noauth .nossl .4.4 .sync_async - - name: .standalone .noauth .nossl .5.0 .sync_async - - name: .standalone .noauth .nossl .6.0 .sync_async - - name: .standalone .noauth .nossl .7.0 .sync_async - - name: .standalone .noauth .nossl .8.0 .sync_async - - name: .standalone .noauth .nossl .rapid .sync_async - - name: .standalone .noauth .nossl .latest .sync_async - display_name: Storage InMemory RHEL8 Python3.9 + - name: .standard-linux .standalone-noauth-nossl + display_name: Storage InMemory RHEL8 run_on: - rhel87-small expansions: STORAGE_ENGINE: inmemory - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: storage-mmapv1-rhel8-python3.9 + - name: storage-mmapv1-rhel8 tasks: - - name: .standalone .4.0 .noauth .nossl .sync_async - - name: .replica_set .4.0 .noauth .nossl .sync_async - display_name: Storage MMAPv1 RHEL8 Python3.9 + - name: .standard-linux !.sharded_cluster-auth-ssl .server-4.0 + display_name: Storage MMAPv1 RHEL8 run_on: - rhel87-small expansions: STORAGE_ENGINE: mmapv1 - PYTHON_BINARY: /opt/python/3.9/bin/python3 diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index b6bd5dce2..80eb248f3 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -283,20 +283,15 @@ def create_storage_engine_variants(): engines = ["InMemory", "MMAPv1"] variants = [] for engine in engines: - python = CPYTHONS[0] expansions = dict(STORAGE_ENGINE=engine.lower()) if engine == engines[0]: - tasks = [f".standalone .noauth .nossl .{v} .sync_async" for v in ALL_VERSIONS] + tasks = [".standard-linux .standalone-noauth-nossl"] else: # MongoDB 4.2 drops support for MMAPv1 versions = get_versions_until("4.0") - tasks = [f".standalone .{v} .noauth .nossl .sync_async" for v in versions] + [ - f".replica_set .{v} .noauth .nossl .sync_async" for v in versions - ] - display_name = get_variant_name(f"Storage {engine}", host, python=python) - variant = create_variant( - tasks, display_name, host=host, python=python, expansions=expansions - ) + tasks = [f".standard-linux !.sharded_cluster-auth-ssl .server-{v}" for v in versions] + display_name = get_variant_name(f"Storage {engine}", host) + variant = create_variant(tasks, display_name, host=host, expansions=expansions) variants.append(variant) return variants @@ -308,7 +303,7 @@ def create_stable_api_variants(): types = ["require v1", "accept v2"] # All python versions across platforms. - for python, test_type in product(MIN_MAX_PYTHON, types): + for test_type in types: expansions = dict(AUTH="auth") # Test against a cluster with requireApiVersion=1. if test_type == types[0]: @@ -318,7 +313,8 @@ def create_stable_api_variants(): # MONGODB_API_VERSION is the apiVersion to use in the test suite. expansions["MONGODB_API_VERSION"] = "1" tasks = [ - f"!.replica_set .{v} .noauth .nossl .sync_async" for v in get_versions_from("5.0") + f".standard-linux !.replica_set-noauth-ssl .server-{v}" + for v in get_versions_from("5.0") ] else: # Test against a cluster with acceptApiVersion2 but without @@ -326,13 +322,12 @@ def create_stable_api_variants(): # clients created in the test suite. expansions["ORCHESTRATION_FILE"] = "versioned-api-testing.json" tasks = [ - f".standalone .{v} .noauth .nossl .sync_async" for v in get_versions_from("5.0") + f".standard-linux .server-{v} .standalone-noauth-nossl" + for v in get_versions_from("5.0") ] base_display_name = f"Stable API {test_type}" - display_name = get_variant_name(base_display_name, host, python=python, **expansions) - variant = create_variant( - tasks, display_name, host=host, python=python, tags=tags, expansions=expansions - ) + display_name = get_variant_name(base_display_name, host, **expansions) + variant = create_variant(tasks, display_name, host=host, tags=tags, expansions=expansions) variants.append(variant) return variants @@ -340,18 +335,16 @@ def create_stable_api_variants(): def create_green_framework_variants(): variants = [] - tasks = [".standalone .noauth .nossl .sync_async"] host = DEFAULT_HOST - for python, framework in product([CPYTHONS[0], CPYTHONS[-1]], ["eventlet", "gevent"]): - if framework == "eventlet" and python == CPYTHONS[-1]: + for framework in ["eventlet", "gevent"]: + tasks = [".standard-linux .standalone-noauth-nossl"] + if framework == "eventlet": # Eventlet has issues with dnspython > 2.0 and newer versions of CPython # https://jira.mongodb.org/browse/PYTHON-5284 - continue + tasks = [".standard-linux .standalone-noauth-nossl .python-3.9"] expansions = dict(GREEN_FRAMEWORK=framework, AUTH="auth", SSL="ssl") - display_name = get_variant_name(f"Green {framework.capitalize()}", host, python=python) - variant = create_variant( - tasks, display_name, host=host, python=python, expansions=expansions - ) + display_name = get_variant_name(f"Green {framework.capitalize()}", host) + variant = create_variant(tasks, display_name, host=host, expansions=expansions) variants.append(variant) return variants @@ -366,28 +359,19 @@ def create_no_c_ext_variants(): def create_atlas_data_lake_variants(): - variants = [] host = HOSTS["ubuntu22"] - for python in MIN_MAX_PYTHON: - tasks = [".atlas_data_lake"] - display_name = get_variant_name("Atlas Data Lake", host, python=python) - variant = create_variant(tasks, display_name, host=host, python=python) - variants.append(variant) - return variants + tasks = [".no-orchestration"] + expansions = dict(TEST_NAME="data_lake") + display_name = get_variant_name("Atlas Data Lake", host) + return [create_variant(tasks, display_name, host=host, expansions=expansions)] def create_mod_wsgi_variants(): - variants = [] host = HOSTS["ubuntu22"] tasks = [".mod_wsgi"] expansions = dict(MOD_WSGI_VERSION="4") - for python in MIN_MAX_PYTHON: - display_name = get_variant_name("mod_wsgi", host, python=python) - variant = create_variant( - tasks, display_name, host=host, python=python, expansions=expansions - ) - variants.append(variant) - return variants + display_name = get_variant_name("mod_wsgi", host) + return [create_variant(tasks, display_name, host=host, expansions=expansions)] def create_disable_test_commands_variants(): @@ -450,13 +434,13 @@ def create_search_index_variants(): def create_mockupdb_variants(): host = DEFAULT_HOST - python = CPYTHONS[0] + expansions = dict(TEST_NAME="mockupdb") return [ create_variant( - [".mockupdb"], - get_variant_name("MockupDB", host, python=python), - python=python, + [".no-orchestration"], + get_variant_name("MockupDB", host), host=host, + expansions=expansions, ) ] @@ -478,12 +462,10 @@ def create_atlas_connect_variants(): host = DEFAULT_HOST return [ create_variant( - [".atlas_connect"], - get_variant_name("Atlas connect", host, python=python), - python=python, - host=host, + [".no-orchestration"], + get_variant_name("Atlas connect", host), + host=DEFAULT_HOST, ) - for python in MIN_MAX_PYTHON ] @@ -518,7 +500,7 @@ def create_perf_variants(): def create_aws_auth_variants(): variants = [] - for host_name, python in product(["ubuntu20", "win64", "macos"], MIN_MAX_PYTHON): + for host_name in ["ubuntu20", "win64", "macos"]: expansions = dict() tasks = [".auth-aws"] if host_name == "macos": @@ -528,9 +510,8 @@ def create_aws_auth_variants(): host = HOSTS[host_name] variant = create_variant( tasks, - get_variant_name("Auth AWS", host, python=python), + get_variant_name("Auth AWS", host), host=host, - python=python, expansions=expansions, ) variants.append(variant) @@ -539,7 +520,8 @@ def create_aws_auth_variants(): def create_no_server_variants(): host = HOSTS["rhel8"] - return [create_variant([".no-server"], "No server", host=host)] + name = get_variant_name("No server", host=host) + return [create_variant([".no-orchestration"], name, host=host)] def create_alternative_hosts_variants(): @@ -705,6 +687,22 @@ def create_server_tasks(): return tasks +def create_no_orchestration_tasks(): + tasks = [] + for python in [*MIN_MAX_PYTHON, PYPYS[-1]]: + tags = [ + "no-orchestration", + f"python-{python}", + ] + name = get_task_name("test-no-orchestration", python=python) + assume_func = FunctionCall(func="assume ec2 role") + test_vars = dict(PYTHON_VERSION=python) + test_func = FunctionCall(func="run tests", vars=test_vars) + commands = [assume_func, test_func] + tasks.append(EvgTask(name=name, tags=tags, commands=commands)) + return tasks + + def create_load_balancer_tasks(): tasks = [] for (auth, ssl), version in product(AUTH_SSLS, get_versions_from("6.0")): @@ -755,29 +753,32 @@ def create_aws_tasks(): "web-identity", "ecs", ] - for version in get_versions_from("4.4"): + for version, test_type, python in zip_cycle(get_versions_from("4.4"), aws_test_types, CPYTHONS): base_name = f"test-auth-aws-{version}" base_tags = ["auth-aws"] server_vars = dict(AUTH_AWS="1", VERSION=version) server_func = FunctionCall(func="run server", vars=server_vars) assume_func = FunctionCall(func="assume ec2 role") - for test_type in aws_test_types: - tags = [*base_tags, f"auth-aws-{test_type}"] - name = f"{base_name}-{test_type}" - test_vars = dict(TEST_NAME="auth_aws", SUB_TEST_NAME=test_type) - test_func = FunctionCall(func="run tests", vars=test_vars) - funcs = [server_func, assume_func, test_func] - tasks.append(EvgTask(name=name, tags=tags, commands=funcs)) - - tags = [*base_tags, "auth-aws-web-identity"] - name = f"{base_name}-web-identity-session-name" - test_vars = dict( - TEST_NAME="auth_aws", SUB_TEST_NAME="web-identity", AWS_ROLE_SESSION_NAME="test" - ) + tags = [*base_tags, f"auth-aws-{test_type}"] + name = get_task_name(f"{base_name}-{test_type}", python=python) + test_vars = dict(TEST_NAME="auth_aws", SUB_TEST_NAME=test_type, PYTHON_VERSION=python) test_func = FunctionCall(func="run tests", vars=test_vars) funcs = [server_func, assume_func, test_func] tasks.append(EvgTask(name=name, tags=tags, commands=funcs)) + if test_type == "web-identity": + tags = [*base_tags, "auth-aws-web-identity"] + name = get_task_name(f"{base_name}-web-identity-session-name", python=python) + test_vars = dict( + TEST_NAME="auth_aws", + SUB_TEST_NAME="web-identity", + AWS_ROLE_SESSION_NAME="test", + PYTHON_VERSION=python, + ) + test_func = FunctionCall(func="run tests", vars=test_vars) + funcs = [server_func, assume_func, test_func] + tasks.append(EvgTask(name=name, tags=tags, commands=funcs)) + return tasks @@ -796,15 +797,18 @@ def create_oidc_tasks(): def create_mod_wsgi_tasks(): tasks = [] - for test, topology in product(["standalone", "embedded-mode"], ["standalone", "replica_set"]): + for (test, topology), python in zip_cycle( + product(["standalone", "embedded-mode"], ["standalone", "replica_set"]), CPYTHONS + ): if test == "standalone": task_name = "mod-wsgi-" else: task_name = "mod-wsgi-embedded-mode-" task_name += topology.replace("_", "-") - server_vars = dict(TOPOLOGY=topology) + task_name = get_task_name(task_name, python=python) + server_vars = dict(TOPOLOGY=topology, PYTHON_VERSION=python) server_func = FunctionCall(func="run server", vars=server_vars) - vars = dict(TEST_NAME="mod_wsgi", SUB_TEST_NAME=test.split("-")[0]) + vars = dict(TEST_NAME="mod_wsgi", SUB_TEST_NAME=test.split("-")[0], PYTHON_VERSION=python) test_func = FunctionCall(func="run tests", vars=vars) tags = ["mod_wsgi"] commands = [server_func, test_func] @@ -863,15 +867,6 @@ def create_search_index_tasks(): return [EvgTask(name=task_name, tags=tags, commands=commands)] -def create_atlas_connect_tasks(): - vars = dict(TEST_NAME="atlas_connect") - assume_func = FunctionCall(func="assume ec2 role") - test_func = FunctionCall(func="run tests", vars=vars) - task_name = "test-atlas-connect" - tags = ["atlas_connect"] - return [EvgTask(name=task_name, tags=tags, commands=[assume_func, test_func])] - - def create_enterprise_auth_tasks(): tasks = [] for python in [*MIN_MAX_PYTHON, PYPYS[-1]]: @@ -909,18 +904,6 @@ def create_perf_tasks(): return tasks -def create_atlas_data_lake_tasks(): - tags = ["atlas_data_lake"] - tasks = [] - for c_ext in C_EXTS: - vars = dict(TEST_NAME="data_lake") - handle_c_ext(c_ext, vars) - test_func = FunctionCall(func="run tests", vars=vars) - task_name = f"test-atlas-data-lake-{c_ext}" - tasks.append(EvgTask(name=task_name, tags=tags, commands=[test_func])) - return tasks - - def create_getdata_tasks(): # Wildcard task. Do you need to find out what tools are available and where? # Throw it here, and execute this task on all buildvariants @@ -1000,20 +983,6 @@ def create_ocsp_tasks(): return tasks -def create_mockupdb_tasks(): - test_func = FunctionCall(func="run tests", vars=dict(TEST_NAME="mockupdb")) - task_name = "test-mockupdb" - tags = ["mockupdb"] - return [EvgTask(name=task_name, tags=tags, commands=[test_func])] - - -def create_no_server_tasks(): - test_func = FunctionCall(func="run tests") - task_name = "test-no-server" - tags = ["no-server"] - return [EvgTask(name=task_name, tags=tags, commands=[test_func])] - - def create_free_threading_tasks(): vars = dict(VERSION="8.0", TOPOLOGY="replica_set") server_func = FunctionCall(func="run server", vars=vars) @@ -1167,6 +1136,7 @@ def create_run_tests_func(): "NO_EXT", "COMPRESSORS", "MONGODB_API_VERSION", + "REQUIRE_API_VERSION", "DEBUG_LOG", "ORCHESTRATION_FILE", "OCSP_SERVER_TYPE", diff --git a/doc/changelog.rst b/doc/changelog.rst index 597f75f87..2fb225e2e 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -10,6 +10,9 @@ Version 4.12.1 is a bug fix release. - Fixed a bug that could raise ``UnboundLocalError`` when creating asynchronous connections over SSL. - Fixed a bug causing SRV hostname validation to fail when resolver and resolved hostnames are identical with three domain levels. - Fixed a bug that caused direct use of ``pymongo.uri_parser`` to raise an ``AttributeError``. +- Removed Eventlet testing against Python versions newer than 3.9 since + Eventlet is actively being sunset by its maintainers and has compatibility issues with PyMongo's dnspython dependency. + Issues Resolved ............... diff --git a/test/__init__.py b/test/__init__.py index a1c5091f3..7ae343206 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -206,6 +206,7 @@ class ClientContext: if os.environ.get("TEST_DATA_LAKE"): self.is_data_lake = True self.auth_enabled = True + self.client.close() self.client = self._connect(host, port, username=db_user, password=db_pwd) self.connected = True return diff --git a/test/asynchronous/__init__.py b/test/asynchronous/__init__.py index f8d04f0d5..c57bf2a88 100644 --- a/test/asynchronous/__init__.py +++ b/test/asynchronous/__init__.py @@ -206,6 +206,7 @@ class AsyncClientContext: if os.environ.get("TEST_DATA_LAKE"): self.is_data_lake = True self.auth_enabled = True + await self.client.close() self.client = await self._connect(host, port, username=db_user, password=db_pwd) self.connected = True return