Skip to content

Commit c8d65e1

Browse files
PYTHON-5931 PYTHON-5935 Fix auth-aws-ecs and kms test failures (#2933)
Co-authored-by: Jeffrey 'Alex' Clark <aclark@aclark.net>
1 parent 473bd20 commit c8d65e1

8 files changed

Lines changed: 27 additions & 19 deletions

File tree

.evergreen/run-mongodb-aws-ecs-test.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ apt-get -qq update < /dev/null > /dev/null
2424
apt-get -q install -y build-essential
2525

2626
export SET_XTRACE_ON=1
27+
export CI=true
28+
# This container has no git, so uv must never try to resolve the mockupdb
29+
# git dependency; UV_NO_LOCK makes uv ignore any lock file entirely.
30+
export UV_NO_LOCK=1
2731
cd src
2832
rm -rf .venv
2933
rm -f .evergreen/scripts/test-env.sh || true

.evergreen/run-tests.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ else
2727
fi
2828

2929
# Start the test runner.
30+
# Never create or read a uv.lock; hosts without git can't resolve mockupdb.
31+
export UV_NO_LOCK=1
3032
echo "Running tests with UV_PYTHON=${UV_PYTHON:-}..."
3133
echo "UV_ARGS=${UV_ARGS}"
3234
uv run ${UV_ARGS} --reinstall-package pymongo .evergreen/scripts/run_tests.py "$@"

.evergreen/scripts/configure-env.sh

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ UV_TOOL_DIR=$PROJECT_DIRECTORY/.local/uv/tools
1818
UV_CACHE_DIR=$PROJECT_DIRECTORY/.local/uv/cache
1919
DRIVERS_TOOLS_BINARIES="$DRIVERS_TOOLS/.bin"
2020
MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
21-
# GNU date on Linux and Windows, BSD date on macOS.
22-
UV_EXCLUDE_NEWER="$(date -u -d '7 days ago' +%Y-%m-%d 2>/dev/null || date -u -v-7d +%Y-%m-%d)"
23-
if [ -z "$UV_EXCLUDE_NEWER" ]; then
24-
echo "Failed to compute UV_EXCLUDE_NEWER" >&2
25-
exit 1
26-
fi
2721

2822
# On Evergreen jobs, "CI" will be set, and we don't want to write to $HOME.
2923
if [ "${CI:-}" == "true" ]; then
@@ -72,7 +66,6 @@ export UV_TOOL_DIR="$UV_TOOL_DIR"
7266
export UV_CACHE_DIR="$UV_CACHE_DIR"
7367
export UV_TOOL_BIN_DIR="$DRIVERS_TOOLS_BINARIES"
7468
export UV_NO_LOCK=1
75-
export UV_EXCLUDE_NEWER="$UV_EXCLUDE_NEWER"
7669
export PYMONGO_BIN_DIR="$PYMONGO_BIN_DIR"
7770
export PATH="$PATH_EXT"
7871
# shellcheck disable=SC2154

.evergreen/scripts/kms_tester.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ def _setup_azure_vm(base_env: dict[str, str]) -> None:
3333
env["AZUREKMS_CMD"] = "sudo apt-get install -y python3-dev build-essential"
3434
run_command(f"{azure_dir}/run-command.sh", env=env)
3535

36-
env["AZUREKMS_CMD"] = "bash .evergreen/just.sh setup-tests kms azure-remote"
36+
env["AZUREKMS_CMD"] = (
37+
"CI=true UV_NO_LOCK=1 bash .evergreen/just.sh setup-tests kms azure-remote"
38+
)
3739
run_command(f"{azure_dir}/run-command.sh", env=env)
3840
LOGGER.info("Setting up Azure VM... done.")
3941

@@ -53,7 +55,7 @@ def _setup_gcp_vm(base_env: dict[str, str]) -> None:
5355
env["GCPKMS_CMD"] = "sudo apt-get install -y python3-dev build-essential"
5456
run_command(f"{gcp_dir}/run-command.sh", env=env)
5557

56-
env["GCPKMS_CMD"] = "bash ./.evergreen/just.sh setup-tests kms gcp-remote"
58+
env["GCPKMS_CMD"] = "CI=true UV_NO_LOCK=1 bash ./.evergreen/just.sh setup-tests kms gcp-remote"
5759
run_command(f"{gcp_dir}/run-command.sh", env=env)
5860
LOGGER.info("Setting up GCP VM...")
5961

@@ -128,10 +130,10 @@ def test_kms_send_to_remote(sub_test_name: str) -> None:
128130
key_name = os.environ["KEY_NAME"]
129131
key_vault_endpoint = os.environ["KEY_VAULT_ENDPOINT"]
130132
env["AZUREKMS_CMD"] = (
131-
f'KEY_NAME="{key_name}" KEY_VAULT_ENDPOINT="{key_vault_endpoint}" bash ./.evergreen/just.sh run-tests'
133+
f'KEY_NAME="{key_name}" KEY_VAULT_ENDPOINT="{key_vault_endpoint}" CI=true UV_NO_LOCK=1 bash ./.evergreen/just.sh run-tests'
132134
)
133135
else:
134-
env["GCPKMS_CMD"] = "./.evergreen/just.sh run-tests"
136+
env["GCPKMS_CMD"] = "CI=true UV_NO_LOCK=1 ./.evergreen/just.sh run-tests"
135137
cmd = f"{DIRS[sub_test_name]}/run-command.sh"
136138
run_command(cmd, env=env)
137139

.evergreen/scripts/setup-dev-env.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ fi
2222
# Ensure dependencies are installed.
2323
bash $HERE/install-dependencies.sh
2424

25+
# Add the default install path to the path if needed.
26+
if [ -z "${PYMONGO_BIN_DIR:-}" ]; then
27+
export PATH="$PATH:$HOME/.local/bin"
28+
fi
29+
2530
# Only run the next part if not running on CI.
2631
if [ -z "${CI:-}" ]; then
27-
# Add the default install path to the path if needed.
28-
if [ -z "${PYMONGO_BIN_DIR:-}" ]; then
29-
export PATH="$PATH:$HOME/.local/bin"
30-
fi
31-
3232
# Set up venv, making sure c extensions build unless disabled.
3333
if [ -z "${NO_EXT:-}" ]; then
3434
export PYMONGO_C_EXT_MUST_BUILD=1

.evergreen/scripts/setup-tests.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ if [ -f $SCRIPT_DIR/env.sh ]; then
2121
source $SCRIPT_DIR/env.sh
2222
fi
2323

24+
# Never create or read a uv.lock; hosts without git can't resolve mockupdb.
25+
export UV_NO_LOCK=1
26+
2427
echo "Setting up tests with args \"$*\"..."
2528
uv run ${USE_ACTIVE_VENV:+--active} "$SCRIPT_DIR/setup_tests.py" "$@"
2629
echo "Setting up tests with args \"$*\"... done."

justfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ set shell := ["bash", "-c"]
33

44
# Don't let `uv` create or read uv.lock.
55
export UV_NO_LOCK := "1"
6-
# Match CI's resolution window so local installs agree.
7-
# GNU date on Linux and Windows, BSD date on macOS.
8-
export UV_EXCLUDE_NEWER := `date -u -d '7 days ago' +%Y-%m-%d 2>/dev/null || date -u -v-7d +%Y-%m-%d`
96

107
# Commonly used command segments.
118
typing_run := "uv run --group typing --extra aws --extra encryption --with numpy --extra ocsp --extra snappy --extra test --extra zstd"

pyproject.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ Documentation = "https://www.mongodb.com/docs/languages/python/pymongo-driver/cu
4646
Source = "https://github.com/mongodb/mongo-python-driver"
4747
Tracker = "https://jira.mongodb.org/projects/PYTHON/issues"
4848

49+
[tool.uv]
50+
# Only sync the (empty) dev group by default; groups like mockupdb require
51+
# an explicit --group flag so hosts without git aren't forced to resolve it.
52+
default-groups = ["dev"]
53+
# Wait 7 days before resolving newly published package versions.
54+
exclude-newer = "7 days"
55+
4956
[dependency-groups]
5057
dev = []
5158
lint = [

0 commit comments

Comments
 (0)