Skip to content

Commit 9cdf369

Browse files
committed
Merge branch 'master' of github.com:mongodb/mongo-python-driver
2 parents 382415f + 86084ad commit 9cdf369

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+449
-365
lines changed

.evergreen/combine-coverage.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set -o errexit # Exit the script with error if any of the commands fail
88

99
. .evergreen/utils.sh
1010

11-
if [ -z "$PYTHON_BINARY" ]; then
11+
if [ -z "${PYTHON_BINARY:-}" ]; then
1212
PYTHON_BINARY=$(find_python3)
1313
fi
1414

.evergreen/hatch.sh

Lines changed: 0 additions & 5 deletions
This file was deleted.

.evergreen/install-dependencies.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ else
1313
SUDO="sudo"
1414
fi
1515

16+
# Install just.
17+
# On Evergreen jobs, "CI" will be set, and we don't want to write to $HOME.
18+
if [ "${CI:-}" == "true" ]; then
19+
BIN_DIR=$DRIVERS_TOOLS_BINARIES
20+
else
21+
BIN_DIR=$HOME/.local/bin
22+
fi
23+
if [ ! -f $BIN_DIR/just ]; then
24+
if [ "Windows_NT" = "${OS:-}" ]; then
25+
TARGET="--target x86_64-pc-windows-msvc"
26+
else
27+
TARGET=""
28+
fi
29+
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- $TARGET --to "$BIN_DIR" || {
30+
# CARGO_HOME is defined in configure-env.sh
31+
export CARGO_HOME=${CARGO_HOME:-$HOME/.cargo/}
32+
export RUSTUP_HOME="${CARGO_HOME}/.rustup"
33+
. ${DRIVERS_TOOLS}/.evergreen/install-rust.sh
34+
cargo install just
35+
if [ "Windows_NT" = "${OS:-}" ]; then
36+
mv $CARGO_HOME/just.exe $BIN_DIR/just
37+
else
38+
mv $CARGO_HOME/just $BIN_DIR
39+
fi
40+
}
41+
fi
42+
1643
# Add 'server' and 'hostname_not_in_cert' as a hostnames
1744
echo "127.0.0.1 server" | $SUDO tee -a /etc/hosts
1845
echo "127.0.0.1 hostname_not_in_cert" | $SUDO tee -a /etc/hosts

.evergreen/just.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
set -eu
3+
4+
. .evergreen/scripts/setup-dev-env.sh
5+
just "$@"

.evergreen/run-azurekms-fail-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ PYTHON_BINARY=/opt/mongodbtoolchain/v4/bin/python3 \
88
KEY_NAME="${AZUREKMS_KEYNAME}" \
99
KEY_VAULT_ENDPOINT="${AZUREKMS_KEYVAULTENDPOINT}" \
1010
SUCCESS=false TEST_FLE_AZURE_AUTO=1 \
11-
$HERE/hatch.sh test:test-eg
11+
$HERE/just.sh test-eg
1212
bash $HERE/teardown-encryption.sh

.evergreen/run-azurekms-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ AZUREKMS_CMD="tar xf mongo-python-driver.tgz" \
1818
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/run-command.sh
1919
echo "Untarring file ... end"
2020
echo "Running test ... begin"
21-
AZUREKMS_CMD="KEY_NAME=\"$AZUREKMS_KEYNAME\" KEY_VAULT_ENDPOINT=\"$AZUREKMS_KEYVAULTENDPOINT\" SUCCESS=true TEST_FLE_AZURE_AUTO=1 ./.evergreen/hatch.sh test:test-eg" \
21+
AZUREKMS_CMD="KEY_NAME=\"$AZUREKMS_KEYNAME\" KEY_VAULT_ENDPOINT=\"$AZUREKMS_KEYVAULTENDPOINT\" SUCCESS=true TEST_FLE_AZURE_AUTO=1 ./.evergreen/just.sh test-eg" \
2222
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/run-command.sh
2323
echo "Running test ... end"
2424
bash $HERE/teardown-encryption.sh

.evergreen/run-gcpkms-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ echo "Untarring file ... begin"
1717
GCPKMS_CMD="tar xf mongo-python-driver.tgz" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
1818
echo "Untarring file ... end"
1919
echo "Running test ... begin"
20-
GCPKMS_CMD="SUCCESS=true TEST_FLE_GCP_AUTO=1 ./.evergreen/hatch.sh test:test-eg" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
20+
GCPKMS_CMD="SUCCESS=true TEST_FLE_GCP_AUTO=1 ./.evergreen/just.sh test-eg" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
2121
echo "Running test ... end"
2222
bash $HERE/teardown-encryption.sh

.evergreen/run-import-time-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -x
55

66
. .evergreen/utils.sh
77

8-
if [ -z "$PYTHON_BINARY" ]; then
8+
if [ -z "${PYTHON_BINARY:-}" ]; then
99
PYTHON_BINARY=$(find_python3)
1010
fi
1111

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ export AUTH="auth"
3131
export SET_XTRACE_ON=1
3232
cd src
3333
rm -rf .venv
34-
bash .evergreen/hatch.sh test:test-eg
34+
bash .evergreen/just.sh test-eg

.evergreen/run-mongodb-oidc-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ fi
3232
export TEST_AUTH_OIDC=1
3333
export COVERAGE=1
3434
export AUTH="auth"
35-
bash ./.evergreen/hatch.sh test:test-eg -- "${@:1}"
35+
bash ./.evergreen/just.sh test-eg "${@:1}"

.evergreen/run-perf-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ export OUTPUT_FILE="${PROJECT_DIRECTORY}/results.json"
1616
export PYTHON_BINARY=/opt/mongodbtoolchain/v4/bin/python3
1717
export PERF_TEST=1
1818

19-
bash ./.evergreen/hatch.sh test:test-eg
19+
bash ./.evergreen/just.sh test-eg

.evergreen/scripts/cleanup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
if [ -f "$DRIVERS_TOOLS"/.evergreen/csfle/secrets-export.sh ]; then
4-
. .evergreen/hatch.sh encryption:teardown
4+
bash .evergreen/teardown-encryption.sh
55
fi
66
rm -rf "${DRIVERS_TOOLS}" || true
77
rm -f ./secrets-export.sh || true

.evergreen/scripts/configure-env.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ fi
1414
PROJECT_DIRECTORY="$(pwd)"
1515
DRIVERS_TOOLS="$(dirname $PROJECT_DIRECTORY)/drivers-tools"
1616
CARGO_HOME=${CARGO_HOME:-${DRIVERS_TOOLS}/.cargo}
17+
HATCH_CONFIG=$PROJECT_DIRECTORY/hatch_config.toml
1718

1819
# Python has cygwin path problems on Windows. Detect prospective mongo-orchestration home directory
1920
if [ "Windows_NT" = "${OS:-}" ]; then # Magic variable in cygwin
2021
DRIVERS_TOOLS=$(cygpath -m $DRIVERS_TOOLS)
2122
PROJECT_DIRECTORY=$(cygpath -m $PROJECT_DIRECTORY)
2223
CARGO_HOME=$(cygpath -m $CARGO_HOME)
24+
HATCH_CONFIG=$(cygpath -m "$HATCH_CONFIG")
2325
fi
2426

2527
SCRIPT_DIR="$PROJECT_DIRECTORY/.evergreen/scripts"
@@ -32,15 +34,16 @@ fi
3234

3335
export MONGO_ORCHESTRATION_HOME="$DRIVERS_TOOLS/.evergreen/orchestration"
3436
export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
37+
export DRIVERS_TOOLS_BINARIES="$DRIVERS_TOOLS/.bin"
3538

3639
cat <<EOT > "$SCRIPT_DIR"/env.sh
37-
set -o errexit
3840
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
3941
export CURRENT_VERSION="$CURRENT_VERSION"
4042
export SKIP_LEGACY_SHELL=1
4143
export DRIVERS_TOOLS="$DRIVERS_TOOLS"
4244
export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
4345
export MONGODB_BINARIES="$MONGODB_BINARIES"
46+
export DRIVERS_TOOLS_BINARIES="$DRIVERS_TOOLS_BINARIES"
4447
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
4548
export SETDEFAULTENCODING="${SETDEFAULTENCODING:-}"
4649
export SKIP_CSOT_TESTS="${SKIP_CSOT_TESTS:-}"
@@ -59,7 +62,8 @@ export skip_ECS_auth_test="${skip_ECS_auth_test:-}"
5962
6063
export CARGO_HOME="$CARGO_HOME"
6164
export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
62-
export PATH="$MONGODB_BINARIES:$PATH"
65+
export HATCH_CONFIG="$HATCH_CONFIG"
66+
export PATH="$MONGODB_BINARIES:$DRIVERS_TOOLS_BINARIES:$PATH"
6367
# shellcheck disable=SC2154
6468
export PROJECT="${project:-mongo-python-driver}"
6569
export PIP_QUIET=1

.evergreen/scripts/ensure-hatch.sh

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
set -o xtrace
3+
set -eu
44
file="$PROJECT_DIRECTORY/.evergreen/install-dependencies.sh"
55
# Don't use ${file} syntax here because evergreen treats it as an empty expansion.
66
[ -f "$file" ] && bash "$file" || echo "$file not available, skipping"

.evergreen/scripts/run-atlas-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
set +x
55
set -o errexit
66
bash "${DRIVERS_TOOLS}"/.evergreen/auth_aws/setup_secrets.sh drivers/atlas_connect
7-
TEST_ATLAS=1 bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh test:test-eg
7+
TEST_ATLAS=1 bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh test-eg

.evergreen/scripts/run-doctests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash
22

33
set -o xtrace
4-
PYTHON_BINARY=${PYTHON_BINARY} bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh doctest:test
4+
PYTHON_BINARY=${PYTHON_BINARY} bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh docs-test

.evergreen/scripts/run-enterprise-auth-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ set -eu
55
set +x
66
# Use the default python to bootstrap secrets.
77
bash "${DRIVERS_TOOLS}"/.evergreen/secrets_handling/setup-secrets.sh drivers/enterprise_auth
8-
TEST_ENTERPRISE_AUTH=1 AUTH=auth bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh test:test-eg
8+
TEST_ENTERPRISE_AUTH=1 AUTH=auth bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh test-eg

.evergreen/scripts/run-gcpkms-fail-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
export PYTHON_BINARY=/opt/mongodbtoolchain/v4/bin/python3
55
export LIBMONGOCRYPT_URL=https://s3.amazonaws.com/mciuploads/libmongocrypt/debian11/master/latest/libmongocrypt.tar.gz
66
SKIP_SERVERS=1 bash ./.evergreen/setup-encryption.sh
7-
SUCCESS=false TEST_FLE_GCP_AUTO=1 ./.evergreen/hatch.sh test:test-eg
7+
SUCCESS=false TEST_FLE_GCP_AUTO=1 ./.evergreen/just.sh test-eg

.evergreen/scripts/run-mockupdb-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
set -o xtrace
44
export PYTHON_BINARY=${PYTHON_BINARY}
5-
bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh test:test-mockupdb
5+
bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh test-mockupdb

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ set -x
3030
export TEST_AUTH_AWS=1
3131
export AUTH="auth"
3232
export SET_XTRACE_ON=1
33-
bash ./.evergreen/hatch.sh test:test-eg
33+
bash ./.evergreen/just.sh test-eg

.evergreen/scripts/run-ocsp-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ TEST_OCSP=1 \
44
PYTHON_BINARY="${PYTHON_BINARY}" \
55
CA_FILE="${DRIVERS_TOOLS}/.evergreen/ocsp/${OCSP_ALGORITHM}/ca.pem" \
66
OCSP_TLS_SHOULD_SUCCEED="${OCSP_TLS_SHOULD_SUCCEED}" \
7-
bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh test:test-eg
7+
bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh test-eg
88
bash "${DRIVERS_TOOLS}"/.evergreen/ocsp/teardown.sh

.evergreen/scripts/run-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ GREEN_FRAMEWORK=${GREEN_FRAMEWORK} \
5151
TEST_DATA_LAKE=${TEST_DATA_LAKE:-} \
5252
TEST_SUITES=${TEST_SUITES:-} \
5353
MONGODB_API_VERSION=${MONGODB_API_VERSION} \
54-
bash "${PROJECT_DIRECTORY}"/.evergreen/hatch.sh test:test-eg
54+
bash "${PROJECT_DIRECTORY}"/.evergreen/just.sh test-eg

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

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
5+
HERE=$(dirname ${BASH_SOURCE:-$0})
6+
pushd "$(dirname "$(dirname $HERE)")" > /dev/null
7+
8+
# Source the env file to pick up common variables.
9+
if [ -f $HERE/scripts/env.sh ]; then
10+
source $HERE/scripts/env.sh
11+
fi
12+
13+
# Set the location of the python bin dir.
14+
if [ "Windows_NT" = "${OS:-}" ]; then
15+
BIN_DIR=.venv/Scripts
16+
else
17+
BIN_DIR=.venv/bin
18+
fi
19+
20+
# Ensure there is a python venv.
21+
if [ ! -d $BIN_DIR ]; then
22+
. .evergreen/utils.sh
23+
24+
if [ -z "${PYTHON_BINARY:-}" ]; then
25+
PYTHON_BINARY=$(find_python3)
26+
fi
27+
28+
echo "Creating virtual environment..."
29+
createvirtualenv "$PYTHON_BINARY" .venv
30+
echo "Creating virtual environment... done."
31+
fi
32+
33+
# Activate the virtual env.
34+
. $BIN_DIR/activate
35+
36+
# Ensure there is a local hatch.
37+
if [ ! -f $BIN_DIR/hatch ]; then
38+
echo "Installing hatch..."
39+
python -m pip install hatch || {
40+
# CARGO_HOME is defined in configure-env.sh
41+
export CARGO_HOME=${CARGO_HOME:-$HOME/.cargo/}
42+
export RUSTUP_HOME="${CARGO_HOME}/.rustup"
43+
${DRIVERS_TOOLS}/.evergreen/install-rust.sh
44+
source "${CARGO_HOME}/env"
45+
python -m pip install hatch
46+
}
47+
echo "Installing hatch... done."
48+
fi
49+
50+
# Ensure hatch does not write to user or global locations.
51+
HATCH_CONFIG=${HATCH_CONFIG:-hatch_config.toml}
52+
if [ ! -f ${HATCH_CONFIG} ]; then
53+
touch hatch_config.toml
54+
hatch config restore
55+
hatch config set dirs.data "$(pwd)/.hatch/data"
56+
hatch config set dirs.cache "$(pwd)/.hatch/cache"
57+
fi
58+
59+
# Ensure there is a local pre-commit if there is a git checkout.
60+
if [ -d .git ]; then
61+
if [ ! -f $BIN_DIR/pre-commit ]; then
62+
python -m pip install pre-commit
63+
fi
64+
65+
# Ensure the pre-commit hook is installed.
66+
if [ ! -f .git/hooks/pre-commit ]; then
67+
pre-commit install
68+
fi
69+
fi
70+
71+
# Install pymongo and its test deps.
72+
python -m pip install ".[test]"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22

33
if [ -n "${test_encryption}" ]; then
4-
./.evergreen/hatch.sh encryption:setup
4+
bash .evergreen/setup-encryption.sh
55
fi

.evergreen/setup-spawn-host.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ rsync -az -e ssh --exclude '.git' --filter=':- .gitignore' -r . $target:$remote_
1616
echo "Copying files to $target... done"
1717

1818
ssh $target $remote_dir/.evergreen/scripts/setup-system.sh
19-
ssh $target "PYTHON_BINARY=${PYTHON_BINARY:-} $remote_dir/.evergreen/scripts/ensure-hatch.sh"
19+
ssh $target "cd $remote_dir && PYTHON_BINARY=${PYTHON_BINARY:-} just install"

.evergreen/utils.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#!/bin/bash -ex
1+
#!/bin/bash
22

3-
set -o xtrace
3+
set -eu
44

55
find_python3() {
66
PYTHON=""

0 commit comments

Comments
 (0)