From 65ae5c4b483742baacf6d7de4d189fd5adcd922f Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 04:42:31 -0500 Subject: [PATCH 01/16] convert remaining tests --- .evergreen/config.yml | 54 ++++------------------- .evergreen/generated_configs/tasks.yml | 32 ++++++++++++++ .evergreen/generated_configs/variants.yml | 12 ++++- .evergreen/scripts/cleanup.sh | 8 ++++ .evergreen/scripts/configure-env.sh | 2 - .evergreen/scripts/generate_config.py | 39 +++++++++++++++- .evergreen/scripts/run-with-env.sh | 21 --------- 7 files changed, 96 insertions(+), 72 deletions(-) delete mode 100755 .evergreen/scripts/run-with-env.sh diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 15bdac315d..a9d8813482 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -42,7 +42,7 @@ functions: # Make an evergreen expansion file with dynamic values - command: subprocess.exec params: - include_expansions_in_env: ["is_patch", "project", "version_id", "skip_web_identity_auth_test", "skip_ECS_auth_test"] + include_expansions_in_env: ["is_patch", "project", "version_id"] binary: bash working_dir: "src" args: @@ -213,16 +213,14 @@ functions: params: file: ${DRIVERS_TOOLS}/mo-expansion.yml - "run doctests": - - command: subprocess.exec - type: test - params: - include_expansions_in_env: [ "PYTHON_BINARY" ] - working_dir: "src" - binary: bash - args: - - .evergreen/scripts/run-with-env.sh - - .evergreen/scripts/run-doctests.sh + "run just script": + - command: subprocess.exec + type: test + params: + include_expansions_in_env: [AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN] + binary: bash + working_dir: "src" + args: [.evergreen/just.sh, "${JUSTFILE_TARGET}"] "run tests": - command: subprocess.exec @@ -248,7 +246,6 @@ functions: binary: bash working_dir: "src" args: - - .evergreen/scripts/run-with-env.sh - .evergreen/scripts/cleanup.sh "teardown system": @@ -352,19 +349,6 @@ tasks: - src/.evergreen/scripts/run-getdata.sh # Standard test tasks {{{ - - name: "mockupdb" - tags: ["mockupdb"] - commands: - - func: "run tests" - vars: - TEST_NAME: mockupdb - - - name: "doctests" - tags: ["doctests"] - commands: - - func: "run server" - - func: "run doctests" - - name: "test-search-index-helpers" commands: - func: "run server" @@ -376,20 +360,6 @@ tasks: TEST_NAME: index_management AUTH: "auth" - - name: "no-server" - tags: ["no-server"] - commands: - - func: "run tests" - - - name: "free-threading" - tags: ["free-threading"] - commands: - - func: "run server" - vars: - VERSION: "8.0" - TOPOLOGY: "replica_set" - - func: "run tests" - - name: "test-aws-lambda-deployed" commands: - command: ec2.assume_role @@ -456,12 +426,6 @@ tasks: - ${github_commit} buildvariants: -- name: "no-server" - display_name: "No server" - run_on: - - rhel84-small - tasks: - - name: "no-server" - name: "Coverage Report" display_name: "Coverage Report" diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 7d03822a6f..78a97bd763 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -704,6 +704,14 @@ tasks: AWS_ROLE_SESSION_NAME: test tags: [auth-aws, auth-aws-web-identity] + # Doctest tests + - name: test-doctests + commands: + - func: run just script + vars: + JUSTFILE_TARGET: docs-test + tags: [docktests] + # Enterprise auth tests - name: test-enterprise-auth commands: @@ -718,6 +726,16 @@ tasks: AUTH: auth tags: [enterprise_auth] + # Free threading tests + - name: test-free-threading + commands: + - func: run server + vars: + VERSION: "8.0" + TOPOLOGY: replica_set + - func: run tests + tags: [free-threading] + # Kms tests - name: test-gcpkms commands: @@ -790,6 +808,14 @@ 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: @@ -832,6 +858,12 @@ tasks: SUB_TEST_NAME: embedded tags: [mod_wsgi] + # No server tests + - name: test-no-server + commands: + - func: run tests + tags: [no-server] + # Ocsp tests - name: test-ocsp-ecdsa-valid-cert-server-does-not-staple commands: diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml index 78f181fc64..ef29004400 100644 --- a/.evergreen/generated_configs/variants.yml +++ b/.evergreen/generated_configs/variants.yml @@ -234,7 +234,7 @@ buildvariants: # Doctests tests - name: doctests-rhel8-python3.9 tasks: - - name: doctests + - name: .doctests display_name: Doctests RHEL8 Python3.9 run_on: - rhel87-small @@ -664,7 +664,7 @@ buildvariants: # Mockupdb tests - name: mockupdb-rhel8-python3.9 tasks: - - name: mockupdb + - name: .mockupdb display_name: MockupDB RHEL8 Python3.9 run_on: - rhel87-small @@ -738,6 +738,14 @@ buildvariants: NO_EXT: "1" PYTHON_BINARY: /opt/python/3.13/bin/python3 + # No server tests + - name: no-server + tasks: + - name: .no-server + display_name: No server + run_on: + - rhel87-small + # Ocsp tests - name: ocsp-rhel8-v4.4-python3.9 tasks: diff --git a/.evergreen/scripts/cleanup.sh b/.evergreen/scripts/cleanup.sh index c58d2163dd..6bb4b3ce5f 100755 --- a/.evergreen/scripts/cleanup.sh +++ b/.evergreen/scripts/cleanup.sh @@ -1,4 +1,12 @@ #!/bin/bash +HERE=$(dirname ${BASH_SOURCE:-$0}) + +# Try to source the env file. +if [ -f $HERE/env.sh ]; then + echo "Sourcing env file" + source $HERE/env.sh +fi + rm -rf "${DRIVERS_TOOLS}" || true rm -f ./secrets-export.sh || true diff --git a/.evergreen/scripts/configure-env.sh b/.evergreen/scripts/configure-env.sh index fa37b8fb08..9ec98bb5be 100755 --- a/.evergreen/scripts/configure-env.sh +++ b/.evergreen/scripts/configure-env.sh @@ -60,8 +60,6 @@ export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME" export MONGODB_BINARIES="$MONGODB_BINARIES" export DRIVERS_TOOLS_BINARIES="$DRIVERS_TOOLS_BINARIES" export PROJECT_DIRECTORY="$PROJECT_DIRECTORY" -export skip_web_identity_auth_test="${skip_web_identity_auth_test:-}" -export skip_ECS_auth_test="${skip_ECS_auth_test:-}" export CARGO_HOME="$CARGO_HOME" export UV_TOOL_DIR="$UV_TOOL_DIR" diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index ebb4b5d31c..fc2341ad79 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -685,7 +685,7 @@ def create_mockupdb_variants(): python = CPYTHONS[0] return [ create_variant( - ["mockupdb"], + [".mockupdb"], get_display_name("MockupDB", host, python=python), python=python, host=host, @@ -698,7 +698,7 @@ def create_doctests_variants(): python = CPYTHONS[0] return [ create_variant( - ["doctests"], + [".doctests"], get_display_name("Doctests", host, python=python), python=python, host=host, @@ -748,6 +748,11 @@ def create_aws_auth_variants(): return variants +def create_no_server_variants(): + host = HOSTS["rhel8"] + return [create_variant([".no-server"], "No server", host=host)] + + def create_alternative_hosts_variants(): batchtime = BATCHTIME_WEEK variants = [] @@ -1014,6 +1019,36 @@ 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_doctest_tasks(): + test_func = FunctionCall(func="run just script", vars=dict(JUSTFILE_TARGET="docs-test")) + task_name = "test-doctests" + tags = ["docktests"] + 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) + test_func = FunctionCall(func="run tests") + task_name = "test-free-threading" + tags = ["free-threading"] + return [EvgTask(name=task_name, tags=tags, commands=[server_func, test_func])] + + def create_serverless_tasks(): vars = dict(TEST_NAME="serverless", AUTH="auth", SSL="ssl") test_func = FunctionCall(func="run tests", vars=vars) diff --git a/.evergreen/scripts/run-with-env.sh b/.evergreen/scripts/run-with-env.sh deleted file mode 100755 index 2fd073605d..0000000000 --- a/.evergreen/scripts/run-with-env.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -eu - -# Example use: bash run-with-env.sh run-tests.sh {args...} - -# Parameter expansion to get just the current directory's name -if [ "${PWD##*/}" == "src" ]; then - . .evergreen/scripts/env.sh - if [ -f ".evergreen/scripts/test-env.sh" ]; then - . .evergreen/scripts/test-env.sh - fi -else - . src/.evergreen/scripts/env.sh - if [ -f "src/.evergreen/scripts/test-env.sh" ]; then - . src/.evergreen/scripts/test-env.sh - fi -fi - -set -eu - -# shellcheck source=/dev/null -. "$@" From b4e9bfb4708690b3fdca6e8b55a97515f081d33e Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 04:43:05 -0500 Subject: [PATCH 02/16] fix tag --- .evergreen/generated_configs/tasks.yml | 2 +- .evergreen/scripts/generate_config.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 78a97bd763..66aa2386f9 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -710,7 +710,7 @@ tasks: - func: run just script vars: JUSTFILE_TARGET: docs-test - tags: [docktests] + tags: [doctests] # Enterprise auth tests - name: test-enterprise-auth diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index fc2341ad79..70051b93a4 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -1029,7 +1029,7 @@ def create_mockupdb_tasks(): def create_doctest_tasks(): test_func = FunctionCall(func="run just script", vars=dict(JUSTFILE_TARGET="docs-test")) task_name = "test-doctests" - tags = ["docktests"] + tags = ["doctests"] return [EvgTask(name=task_name, tags=tags, commands=[test_func])] From 3860683b9f2eef7faad42ebae9b6442609552039 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 07:48:22 -0500 Subject: [PATCH 03/16] run server for doctests --- .evergreen/scripts/generate_config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index 70051b93a4..c75c864263 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -1027,10 +1027,11 @@ def create_mockupdb_tasks(): def create_doctest_tasks(): + server_func = FunctionCall(func="run server") test_func = FunctionCall(func="run just script", vars=dict(JUSTFILE_TARGET="docs-test")) task_name = "test-doctests" tags = ["doctests"] - return [EvgTask(name=task_name, tags=tags, commands=[test_func])] + return [EvgTask(name=task_name, tags=tags, commands=[server_func, test_func])] def create_no_server_tasks(): From 6fc306eebb2c579dec005a1673be5196f51aca1a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 08:05:57 -0500 Subject: [PATCH 04/16] update task --- .evergreen/generated_configs/tasks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 66aa2386f9..037acbda0e 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -707,6 +707,7 @@ tasks: # Doctest tests - name: test-doctests commands: + - func: run server - func: run just script vars: JUSTFILE_TARGET: docs-test From 22c8e19a56e9d365c50de39d4d3adda2175f3519 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 08:52:03 -0500 Subject: [PATCH 05/16] debug --- .evergreen/run-tests.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 40336c6d2d..b9465b9f42 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,6 +31,8 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. +echo "Using UV_ARGS='${UV_ARGS}'" +exit 1 uv sync ${UV_ARGS} --reinstall uv pip list From 0b8b7cf273cb5684477a12073f1b65fe8676a09e Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 08:59:18 -0500 Subject: [PATCH 06/16] debug --- .evergreen/run-tests.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index b9465b9f42..380909b973 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,12 +31,9 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -echo "Using UV_ARGS='${UV_ARGS}'" +uv pip ${UV_ARGS} list exit 1 -uv sync ${UV_ARGS} --reinstall -uv pip list - # Start the test runner. -uv run .evergreen/scripts/run_tests.py "$@" +uv run ${UV_ARGS} .evergreen/scripts/run_tests.py "$@" popd From aeae9b582ccb1e5c9128e5bc6815c4cd37e5d41a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:03:01 -0500 Subject: [PATCH 07/16] debug --- .evergreen/run-tests.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 380909b973..1e7ccd9b5c 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,9 +31,11 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -uv pip ${UV_ARGS} list +uv sync ${UV_ARGS} --with pip --reinstall +uv run pip list exit 1 + # Start the test runner. -uv run ${UV_ARGS} .evergreen/scripts/run_tests.py "$@" +uv run .evergreen/scripts/run_tests.py "$@" popd From 150211b897b76bfe62abad571ab0dbda2dd86055 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:10:07 -0500 Subject: [PATCH 08/16] debug --- .evergreen/run-tests.sh | 2 +- .evergreen/scripts/setup_tests.py | 3 +-- pyproject.toml | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 1e7ccd9b5c..30b84d8f05 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,7 +31,7 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -uv sync ${UV_ARGS} --with pip --reinstall +uv sync ${UV_ARGS} --reinstall uv run pip list exit 1 diff --git a/.evergreen/scripts/setup_tests.py b/.evergreen/scripts/setup_tests.py index 56011341a3..04b3a41011 100644 --- a/.evergreen/scripts/setup_tests.py +++ b/.evergreen/scripts/setup_tests.py @@ -128,8 +128,7 @@ def handle_test_env() -> None: TEST_ARGS = "" # Start compiling the args we'll pass to uv. - # Run in an isolated environment so as not to pollute the base venv. - UV_ARGS = ["--isolated --extra test"] + UV_ARGS = ["--extra test --group pip"] test_title = test_name if sub_test_name: diff --git a/pyproject.toml b/pyproject.toml index 993b3e5aee..2249c99394 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,6 +49,7 @@ Tracker = "https://jira.mongodb.org/projects/PYTHON/issues" dev = [ "pre-commit>=4.0" ] +pip = ["pip"] gevent = ["gevent"] eventlet = ["eventlet"] coverage = [ From 52bbb73908ed88db31b100f5826b0c4d691c3fed Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:13:36 -0500 Subject: [PATCH 09/16] try without uv sync --- .evergreen/run-tests.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 30b84d8f05..229b020564 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,8 +31,7 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -uv sync ${UV_ARGS} --reinstall -uv run pip list +uv run ${UV_ARGS} pip list exit 1 # Start the test runner. From a0aeba311d60eb618ded4841035f72fc06ffeb6c Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:28:02 -0500 Subject: [PATCH 10/16] debug --- .evergreen/run-tests.sh | 7 +++++-- .evergreen/scripts/setup_tests.py | 2 +- pyproject.toml | 4 +--- requirements/test.txt | 1 + uv.lock | 4 ++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 229b020564..bd21241721 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,8 +31,11 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -uv run ${UV_ARGS} pip list -exit 1 +uv sync ${UV_ARGS} +uv pip list + +# Ensure we go back to base environment after the test. +trap "uv sync" EXIT HUP # Start the test runner. uv run .evergreen/scripts/run_tests.py "$@" diff --git a/.evergreen/scripts/setup_tests.py b/.evergreen/scripts/setup_tests.py index 04b3a41011..0dd10005b1 100644 --- a/.evergreen/scripts/setup_tests.py +++ b/.evergreen/scripts/setup_tests.py @@ -128,7 +128,7 @@ def handle_test_env() -> None: TEST_ARGS = "" # Start compiling the args we'll pass to uv. - UV_ARGS = ["--extra test --group pip"] + UV_ARGS = ["--extra test --no-group dev"] test_title = test_name if sub_test_name: diff --git a/pyproject.toml b/pyproject.toml index 2249c99394..bcbb455f57 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,6 @@ Tracker = "https://jira.mongodb.org/projects/PYTHON/issues" dev = [ "pre-commit>=4.0" ] -pip = ["pip"] gevent = ["gevent"] eventlet = ["eventlet"] coverage = [ @@ -66,8 +65,7 @@ perf = ["simplejson"] typing = [ "mypy==1.14.1", "pyright==1.1.392.post0", - "typing_extensions", - "pip" + "typing_extensions" ] # Used to call hatch_build.py diff --git a/requirements/test.txt b/requirements/test.txt index 135114feff..00976f774c 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,2 +1,3 @@ pytest>=8.2 pytest-asyncio>=0.24.0 +pip diff --git a/uv.lock b/uv.lock index 8b5d592dc0..010fb7a530 100644 --- a/uv.lock +++ b/uv.lock @@ -1036,6 +1036,7 @@ snappy = [ { name = "python-snappy" }, ] test = [ + { name = "pip" }, { name = "pytest" }, { name = "pytest-asyncio" }, ] @@ -1068,7 +1069,6 @@ pymongocrypt-source = [ ] typing = [ { name = "mypy" }, - { name = "pip" }, { name = "pyright" }, { name = "typing-extensions" }, ] @@ -1080,6 +1080,7 @@ requires-dist = [ { name = "cryptography", marker = "extra == 'ocsp'", specifier = ">=2.5" }, { name = "dnspython", specifier = ">=1.16.0,<3.0.0" }, { name = "furo", marker = "extra == 'docs'", specifier = "==2024.8.6" }, + { name = "pip", marker = "extra == 'test'" }, { name = "pykerberos", marker = "os_name != 'nt' and extra == 'gssapi'" }, { name = "pymongo-auth-aws", marker = "extra == 'aws'", specifier = ">=1.1.0,<2.0.0" }, { name = "pymongo-auth-aws", marker = "extra == 'encryption'", specifier = ">=1.1.0,<2.0.0" }, @@ -1112,7 +1113,6 @@ perf = [{ name = "simplejson" }] pymongocrypt-source = [{ name = "pymongocrypt", git = "https://github.com/mongodb/libmongocrypt?subdirectory=bindings%2Fpython&rev=master" }] typing = [ { name = "mypy", specifier = "==1.14.1" }, - { name = "pip" }, { name = "pyright", specifier = "==1.1.392.post0" }, { name = "typing-extensions" }, ] From f21b970eeb345450b7fe885ed8e4f8cb0667fe9a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:31:48 -0500 Subject: [PATCH 11/16] debug --- .evergreen/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index bd21241721..73b2fe4627 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -38,6 +38,6 @@ uv pip list trap "uv sync" EXIT HUP # Start the test runner. -uv run .evergreen/scripts/run_tests.py "$@" +uv run ${UV_ARGS} .evergreen/scripts/run_tests.py "$@" popd From 4bf8d982bd2919757587a9e70a91805617527d45 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 09:42:33 -0500 Subject: [PATCH 12/16] force reinstall --- .evergreen/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 73b2fe4627..6f53ced61c 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,7 +31,7 @@ if [ -f "./secrets-export.sh" ]; then fi # List the packages. -uv sync ${UV_ARGS} +uv sync ${UV_ARGS} --reinstall uv pip list # Ensure we go back to base environment after the test. From 812313091c9840d4cd65e411320d94d6c371c553 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 16:14:57 -0500 Subject: [PATCH 13/16] update contrib guide --- CONTRIBUTING.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5f55e56684..e75510171e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -282,6 +282,27 @@ Note: these tests can only be run from an Evergreen host. - Run `just setup-tests search_index`. - Run `just run-tests`. +### MockupDB tests + +- Run `just setup-tests mockupdb`. +- Run `just run-tests`. + +### Doc tests + +The doc tests require a running server. + +- Run `just run-server`. +- Run `just docs-test`. + +### Free-threaded Python Tests + +In the evergreen builds, the tests are configured to use the free-threaded python from the toolchain. +Locally you can run: + +- Run `just run-server`. +- Run `just setup-tests`. +- Run `UV_PYTHON=3.13t just run-tests`. + ### AWS Lambda tests You will need to set up access to the `drivers-test-secrets-role`, see the [Wiki](https://wiki.corp.mongodb.com/spaces/DRIVERS/pages/239737385/Using+AWS+Secrets+Manager+to+Store+Testing+Secrets). From 032cc5867aa970676135f8437e9f27da1b793157 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 16:16:51 -0500 Subject: [PATCH 14/16] revert change to typing group --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6ffd0a348b..f8c25ed602 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,8 @@ perf = ["simplejson"] typing = [ "mypy==1.14.1", "pyright==1.1.392.post0", - "typing_extensions" + "typing_extensions", + "pip" ] # Used to call hatch_build.py From 7e5d032ea755895bffc60daa5b130c2e4863ca62 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 16:19:34 -0500 Subject: [PATCH 15/16] fix lock --- uv.lock | 2 ++ 1 file changed, 2 insertions(+) diff --git a/uv.lock b/uv.lock index 010fb7a530..7dae5c9136 100644 --- a/uv.lock +++ b/uv.lock @@ -1069,6 +1069,7 @@ pymongocrypt-source = [ ] typing = [ { name = "mypy" }, + { name = "pip" }, { name = "pyright" }, { name = "typing-extensions" }, ] @@ -1113,6 +1114,7 @@ perf = [{ name = "simplejson" }] pymongocrypt-source = [{ name = "pymongocrypt", git = "https://github.com/mongodb/libmongocrypt?subdirectory=bindings%2Fpython&rev=master" }] typing = [ { name = "mypy", specifier = "==1.14.1" }, + { name = "pip" }, { name = "pyright", specifier = "==1.1.392.post0" }, { name = "typing-extensions" }, ] From 893f010d9538fb0a3cdfb4abe21bbe8e69ff7d4f Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 19 Mar 2025 16:20:00 -0500 Subject: [PATCH 16/16] remove test from test reqs --- requirements/test.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements/test.txt b/requirements/test.txt index 00976f774c..135114feff 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,3 +1,2 @@ pytest>=8.2 pytest-asyncio>=0.24.0 -pip