22set -o errexit # Exit the script with error if any of the commands fail
33
44# Supported/used environment variables:
5- # SET_XTRACE_ON Set to non-empty to write all commands first to stderr.
6- # AUTH Set to enable authentication. Defaults to "noauth"
7- # SSL Set to enable SSL. Defaults to "nossl"
8- # PYTHON_BINARY The Python version to use. Defaults to whatever is available
9- # GREEN_FRAMEWORK The green framework to test with, if any.
10- # C_EXTENSIONS Pass --no_ext to setup.py, or not.
11- # COVERAGE If non-empty, run the test suite with coverage.
12- # TEST_ENCRYPTION If non-empty, install pymongocrypt.
13- # LIBMONGOCRYPT_URL The URL to download libmongocrypt.
5+ # SET_XTRACE_ON Set to non-empty to write all commands first to stderr.
6+ # AUTH Set to enable authentication. Defaults to "noauth"
7+ # SSL Set to enable SSL. Defaults to "nossl"
8+ # PYTHON_BINARY The Python version to use. Defaults to whatever is available
9+ # GREEN_FRAMEWORK The green framework to test with, if any.
10+ # C_EXTENSIONS Pass --no_ext to setup.py, or not.
11+ # COVERAGE If non-empty, run the test suite with coverage.
12+ # TEST_ENCRYPTION If non-empty, install pymongocrypt.
13+ # LIBMONGOCRYPT_URL The URL to download libmongocrypt.
14+ # SETDEFAULTENCODING The encoding to set via sys.setdefaultencoding.
1415
1516if [ -n " ${SET_XTRACE_ON} " ]; then
1617 set -o xtrace
@@ -28,6 +29,7 @@ COVERAGE=${COVERAGE:-}
2829COMPRESSORS=${COMPRESSORS:- }
2930TEST_ENCRYPTION=${TEST_ENCRYPTION:- }
3031LIBMONGOCRYPT_URL=${LIBMONGOCRYPT_URL:- }
32+ SETDEFAULTENCODING=${SETDEFAULTENCODING:- }
3133
3234if [ -n " $COMPRESSORS " ]; then
3335 export COMPRESSORS=$COMPRESSORS
@@ -72,6 +74,17 @@ elif [ "$COMPRESSORS" = "zstd" ]; then
7274 trap " deactivate; rm -rf zstdtest" EXIT HUP
7375 pip install zstandard
7476 PYTHON=python
77+ elif [ -n " $SETDEFAULTENCODING " ]; then
78+ $PYTHON_BINARY -m virtualenv --system-site-packages --never-download encodingtest
79+ . encodingtest/bin/activate
80+ trap " deactivate; rm -rf encodingtest" EXIT HUP
81+ mkdir test-sitecustomize
82+ cat << EOT > test-sitecustomize/sitecustomize.py
83+ import sys
84+ sys.setdefaultencoding("$SETDEFAULTENCODING ")
85+ EOT
86+ export PYTHONPATH=" $( pwd) /test-sitecustomize"
87+ PYTHON=python
7588else
7689 PYTHON=" $PYTHON_BINARY "
7790fi
0 commit comments