Merge branch 'master' of github.com:mongodb/mongo-python-driver
This commit is contained in:
commit
33922d432e
@ -66,7 +66,7 @@ functions:
|
||||
params:
|
||||
binary: bash
|
||||
working_dir: "src"
|
||||
include_expansions_in_env: [VERSION, TOPOLOGY, AUTH, SSL, ORCHESTRATION_FILE, PYTHON_BINARY, PYTHON_VERSION,
|
||||
include_expansions_in_env: [VERSION, TOPOLOGY, AUTH, SSL, ORCHESTRATION_FILE, PYTHON_BINARY, PYTHON_VERSION, IS_WIN32,
|
||||
STORAGE_ENGINE, REQUIRE_API_VERSION, DRIVERS_TOOLS, TEST_CRYPT_SHARED, AUTH_AWS, LOAD_BALANCER, LOCAL_ATLAS, NO_EXT]
|
||||
args: [.evergreen/just.sh, run-server, "${TEST_NAME}"]
|
||||
- command: expansions.update
|
||||
@ -87,7 +87,7 @@ functions:
|
||||
type: test
|
||||
params:
|
||||
include_expansions_in_env: [AUTH, SSL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,
|
||||
AWS_SESSION_TOKEN, COVERAGE, PYTHON_BINARY, LIBMONGOCRYPT_URL, MONGODB_URI, PYTHON_VERSION,
|
||||
AWS_SESSION_TOKEN, COVERAGE, PYTHON_BINARY, LIBMONGOCRYPT_URL, MONGODB_URI, PYTHON_VERSION, IS_WIN32,
|
||||
DISABLE_TEST_COMMANDS, GREEN_FRAMEWORK, NO_EXT, COMPRESSORS, MONGODB_API_VERSION, DEBUG_LOG,
|
||||
ORCHESTRATION_FILE, OCSP_SERVER_TYPE, VERSION, REQUIRE_FIPS]
|
||||
binary: bash
|
||||
|
||||
@ -8035,7 +8035,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.9"
|
||||
tags: [server-version, "3.9", sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-3.9, sharded_cluster-auth-ssl]
|
||||
- name: test-python3.10-auth-ssl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8051,7 +8051,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.10"
|
||||
tags: [server-version, "3.10", sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-3.10, sharded_cluster-auth-ssl]
|
||||
- name: test-python3.11-auth-ssl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8067,7 +8067,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.11"
|
||||
tags: [server-version, "3.11", sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-3.11, sharded_cluster-auth-ssl]
|
||||
- name: test-python3.12-auth-ssl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8083,7 +8083,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.12"
|
||||
tags: [server-version, "3.12", sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-3.12, sharded_cluster-auth-ssl]
|
||||
- name: test-python3.13-auth-ssl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8099,7 +8099,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.13"
|
||||
tags: [server-version, "3.13", sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-3.13, sharded_cluster-auth-ssl]
|
||||
- name: test-pypy3.10-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8113,7 +8113,7 @@ tasks:
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
PYTHON_VERSION: pypy3.10
|
||||
tags: [server-version, pypy3.10, sharded_cluster-auth-ssl]
|
||||
tags: [server-version, python-pypy3.10, sharded_cluster-auth-ssl]
|
||||
- name: test-python3.9-auth-ssl-standalone-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8129,7 +8129,7 @@ tasks:
|
||||
TOPOLOGY: standalone
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.9"
|
||||
tags: [server-version, "3.9", standalone-auth-ssl]
|
||||
tags: [server-version, python-3.9, standalone-auth-ssl]
|
||||
- name: test-python3.10-auth-nossl-standalone-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8145,7 +8145,7 @@ tasks:
|
||||
TOPOLOGY: standalone
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.10"
|
||||
tags: [server-version, "3.10", standalone-auth-nossl]
|
||||
tags: [server-version, python-3.10, standalone-auth-nossl]
|
||||
- name: test-python3.11-noauth-ssl-standalone-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8161,7 +8161,7 @@ tasks:
|
||||
TOPOLOGY: standalone
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.11"
|
||||
tags: [server-version, "3.11", standalone-noauth-ssl]
|
||||
tags: [server-version, python-3.11, standalone-noauth-ssl]
|
||||
- name: test-python3.12-noauth-nossl-standalone-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8177,7 +8177,7 @@ tasks:
|
||||
TOPOLOGY: standalone
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.12"
|
||||
tags: [server-version, "3.12", standalone-noauth-nossl]
|
||||
tags: [server-version, python-3.12, standalone-noauth-nossl]
|
||||
- name: test-python3.13-auth-ssl-replica-set-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8193,7 +8193,7 @@ tasks:
|
||||
TOPOLOGY: replica_set
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.13"
|
||||
tags: [server-version, "3.13", replica_set-auth-ssl]
|
||||
tags: [server-version, python-3.13, replica_set-auth-ssl]
|
||||
- name: test-pypy3.10-auth-nossl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8207,7 +8207,7 @@ tasks:
|
||||
SSL: nossl
|
||||
TOPOLOGY: replica_set
|
||||
PYTHON_VERSION: pypy3.10
|
||||
tags: [server-version, pypy3.10, replica_set-auth-nossl]
|
||||
tags: [server-version, python-pypy3.10, replica_set-auth-nossl]
|
||||
- name: test-python3.9-noauth-ssl-replica-set-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8223,7 +8223,7 @@ tasks:
|
||||
TOPOLOGY: replica_set
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.9"
|
||||
tags: [server-version, "3.9", replica_set-noauth-ssl]
|
||||
tags: [server-version, python-3.9, replica_set-noauth-ssl]
|
||||
- name: test-python3.10-noauth-nossl-replica-set-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8239,7 +8239,7 @@ tasks:
|
||||
TOPOLOGY: replica_set
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.10"
|
||||
tags: [server-version, "3.10", replica_set-noauth-nossl]
|
||||
tags: [server-version, python-3.10, replica_set-noauth-nossl]
|
||||
- name: test-python3.12-auth-nossl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8255,7 +8255,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.12"
|
||||
tags: [server-version, "3.12", sharded_cluster-auth-nossl]
|
||||
tags: [server-version, python-3.12, sharded_cluster-auth-nossl]
|
||||
- name: test-python3.13-noauth-ssl-sharded-cluster-cov
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8271,7 +8271,7 @@ tasks:
|
||||
TOPOLOGY: sharded_cluster
|
||||
COVERAGE: "1"
|
||||
PYTHON_VERSION: "3.13"
|
||||
tags: [server-version, "3.13", sharded_cluster-noauth-ssl]
|
||||
tags: [server-version, python-3.13, sharded_cluster-noauth-ssl]
|
||||
- name: test-pypy3.10-noauth-nossl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
@ -8285,7 +8285,7 @@ tasks:
|
||||
SSL: nossl
|
||||
TOPOLOGY: sharded_cluster
|
||||
PYTHON_VERSION: pypy3.10
|
||||
tags: [server-version, pypy3.10, sharded_cluster-noauth-nossl]
|
||||
tags: [server-version, python-pypy3.10, sharded_cluster-noauth-nossl]
|
||||
|
||||
# Serverless tests
|
||||
- name: test-serverless
|
||||
@ -8296,3 +8296,599 @@ tasks:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
tags: [serverless]
|
||||
|
||||
# Standard non linux tests
|
||||
- name: test-v4.0-python3.9-sync-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.0"
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.0
|
||||
- python-3.9
|
||||
- standalone-noauth-nossl
|
||||
- sync
|
||||
- name: test-v4.0-python3.10-async-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.0"
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.0
|
||||
- python-3.10
|
||||
- replica_set-noauth-ssl
|
||||
- async
|
||||
- name: test-v4.0-python3.11-sync-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.0"
|
||||
PYTHON_VERSION: "3.11"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.0
|
||||
- python-3.11
|
||||
- sharded_cluster-auth-ssl
|
||||
- sync
|
||||
- name: test-v4.2-python3.12-async-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.2"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.2"
|
||||
PYTHON_VERSION: "3.12"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.2
|
||||
- python-3.12
|
||||
- standalone-noauth-nossl
|
||||
- async
|
||||
- name: test-v4.2-python3.13-sync-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.2"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.2"
|
||||
PYTHON_VERSION: "3.13"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.2
|
||||
- python-3.13
|
||||
- replica_set-noauth-ssl
|
||||
- sync
|
||||
- name: test-v4.2-python3.9-async-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.2"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.2"
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.2
|
||||
- python-3.9
|
||||
- sharded_cluster-auth-ssl
|
||||
- async
|
||||
- name: test-v4.4-python3.10-sync-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.4"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "4.4"
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.4
|
||||
- python-3.10
|
||||
- standalone-noauth-nossl
|
||||
- sync
|
||||
- name: test-v4.4-python3.11-async-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.4"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "4.4"
|
||||
PYTHON_VERSION: "3.11"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.4
|
||||
- python-3.11
|
||||
- replica_set-noauth-ssl
|
||||
- async
|
||||
- name: test-v4.4-python3.12-sync-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.4"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "4.4"
|
||||
PYTHON_VERSION: "3.12"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-4.4
|
||||
- python-3.12
|
||||
- sharded_cluster-auth-ssl
|
||||
- sync
|
||||
- name: test-v5.0-python3.13-async-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "5.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "5.0"
|
||||
PYTHON_VERSION: "3.13"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-5.0
|
||||
- python-3.13
|
||||
- standalone-noauth-nossl
|
||||
- async
|
||||
- name: test-v5.0-python3.9-sync-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "5.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "5.0"
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-5.0
|
||||
- python-3.9
|
||||
- replica_set-noauth-ssl
|
||||
- sync
|
||||
- name: test-v5.0-python3.10-async-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "5.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "5.0"
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-5.0
|
||||
- python-3.10
|
||||
- sharded_cluster-auth-ssl
|
||||
- async
|
||||
- name: test-v6.0-python3.11-sync-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "6.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "6.0"
|
||||
PYTHON_VERSION: "3.11"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-6.0
|
||||
- python-3.11
|
||||
- standalone-noauth-nossl
|
||||
- sync
|
||||
- name: test-v6.0-python3.12-async-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "6.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "6.0"
|
||||
PYTHON_VERSION: "3.12"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-6.0
|
||||
- python-3.12
|
||||
- replica_set-noauth-ssl
|
||||
- async
|
||||
- name: test-v6.0-python3.13-sync-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "6.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "6.0"
|
||||
PYTHON_VERSION: "3.13"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-6.0
|
||||
- python-3.13
|
||||
- sharded_cluster-auth-ssl
|
||||
- sync
|
||||
- name: test-v7.0-python3.9-async-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "7.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "7.0"
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-7.0
|
||||
- python-3.9
|
||||
- standalone-noauth-nossl
|
||||
- async
|
||||
- name: test-v7.0-python3.10-sync-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "7.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "7.0"
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-7.0
|
||||
- python-3.10
|
||||
- replica_set-noauth-ssl
|
||||
- sync
|
||||
- name: test-v7.0-python3.11-async-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "7.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "7.0"
|
||||
PYTHON_VERSION: "3.11"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-7.0
|
||||
- python-3.11
|
||||
- sharded_cluster-auth-ssl
|
||||
- async
|
||||
- name: test-v8.0-python3.12-sync-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "8.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: "8.0"
|
||||
PYTHON_VERSION: "3.12"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-8.0
|
||||
- python-3.12
|
||||
- standalone-noauth-nossl
|
||||
- sync
|
||||
- name: test-v8.0-python3.13-async-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "8.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: "8.0"
|
||||
PYTHON_VERSION: "3.13"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-8.0
|
||||
- python-3.13
|
||||
- replica_set-noauth-ssl
|
||||
- async
|
||||
- name: test-v8.0-python3.9-sync-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "8.0"
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: "8.0"
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-8.0
|
||||
- python-3.9
|
||||
- sharded_cluster-auth-ssl
|
||||
- sync
|
||||
- name: test-rapid-python3.10-async-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: rapid
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: rapid
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-rapid
|
||||
- python-3.10
|
||||
- standalone-noauth-nossl
|
||||
- async
|
||||
- name: test-rapid-python3.11-sync-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: rapid
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: rapid
|
||||
PYTHON_VERSION: "3.11"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-rapid
|
||||
- python-3.11
|
||||
- replica_set-noauth-ssl
|
||||
- sync
|
||||
- name: test-rapid-python3.12-async-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: rapid
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: rapid
|
||||
PYTHON_VERSION: "3.12"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-rapid
|
||||
- python-3.12
|
||||
- sharded_cluster-auth-ssl
|
||||
- async
|
||||
- name: test-latest-python3.13-sync-noauth-nossl-standalone
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: latest
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: nossl
|
||||
TOPOLOGY: standalone
|
||||
VERSION: latest
|
||||
PYTHON_VERSION: "3.13"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-latest
|
||||
- python-3.13
|
||||
- standalone-noauth-nossl
|
||||
- sync
|
||||
- name: test-latest-python3.9-async-noauth-ssl-replica-set
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: latest
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: noauth
|
||||
SSL: ssl
|
||||
TOPOLOGY: replica_set
|
||||
VERSION: latest
|
||||
PYTHON_VERSION: "3.9"
|
||||
TEST_NAME: default_async
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-latest
|
||||
- python-3.9
|
||||
- replica_set-noauth-ssl
|
||||
- async
|
||||
- name: test-latest-python3.10-sync-auth-ssl-sharded-cluster
|
||||
commands:
|
||||
- func: run server
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: latest
|
||||
- func: run tests
|
||||
vars:
|
||||
AUTH: auth
|
||||
SSL: ssl
|
||||
TOPOLOGY: sharded_cluster
|
||||
VERSION: latest
|
||||
PYTHON_VERSION: "3.10"
|
||||
TEST_NAME: default_sync
|
||||
tags:
|
||||
- standard-non-linux
|
||||
- server-latest
|
||||
- python-3.10
|
||||
- sharded_cluster-auth-ssl
|
||||
- sync
|
||||
|
||||
@ -804,112 +804,6 @@ buildvariants:
|
||||
expansions:
|
||||
PYTHON_BINARY: /opt/python/3.9/bin/python3
|
||||
|
||||
# Server tests
|
||||
- name: test-macos-python3.9
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test macOS Python3.9"
|
||||
run_on:
|
||||
- macos-14
|
||||
expansions:
|
||||
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3
|
||||
- name: test-macos-python3.13
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test macOS Python3.13"
|
||||
run_on:
|
||||
- macos-14
|
||||
expansions:
|
||||
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3
|
||||
- name: test-macos-arm64-python3.9
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl .6.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .6.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .6.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .7.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .7.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .7.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .8.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .8.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .8.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .rapid !.sync_async
|
||||
- name: .replica_set .noauth .ssl .rapid !.sync_async
|
||||
- name: .standalone .noauth .nossl .rapid !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .latest !.sync_async
|
||||
- name: .replica_set .noauth .ssl .latest !.sync_async
|
||||
- name: .standalone .noauth .nossl .latest !.sync_async
|
||||
display_name: "* Test macOS Arm64 Python3.9"
|
||||
run_on:
|
||||
- macos-14-arm64
|
||||
expansions:
|
||||
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3
|
||||
- name: test-macos-arm64-python3.13
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl .6.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .6.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .6.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .7.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .7.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .7.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .8.0 !.sync_async
|
||||
- name: .replica_set .noauth .ssl .8.0 !.sync_async
|
||||
- name: .standalone .noauth .nossl .8.0 !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .rapid !.sync_async
|
||||
- name: .replica_set .noauth .ssl .rapid !.sync_async
|
||||
- name: .standalone .noauth .nossl .rapid !.sync_async
|
||||
- name: .sharded_cluster .auth .ssl .latest !.sync_async
|
||||
- name: .replica_set .noauth .ssl .latest !.sync_async
|
||||
- name: .standalone .noauth .nossl .latest !.sync_async
|
||||
display_name: "* Test macOS Arm64 Python3.13"
|
||||
run_on:
|
||||
- macos-14-arm64
|
||||
expansions:
|
||||
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3
|
||||
- name: test-win64-python3.9
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test Win64 Python3.9"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
expansions:
|
||||
PYTHON_BINARY: C:/python/Python39/python.exe
|
||||
- name: test-win64-python3.13
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test Win64 Python3.13"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
expansions:
|
||||
PYTHON_BINARY: C:/python/Python313/python.exe
|
||||
- name: test-win32-python3.9
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test Win32 Python3.9"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
expansions:
|
||||
PYTHON_BINARY: C:/python/32/Python39/python.exe
|
||||
- name: test-win32-python3.13
|
||||
tasks:
|
||||
- name: .sharded_cluster .auth .ssl !.sync_async
|
||||
- name: .replica_set .noauth .ssl !.sync_async
|
||||
- name: .standalone .noauth .nossl !.sync_async
|
||||
display_name: "* Test Win32 Python3.13"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
expansions:
|
||||
PYTHON_BINARY: C:/python/32/Python313/python.exe
|
||||
|
||||
# Server version tests
|
||||
- name: mongodb-v4.0
|
||||
tasks:
|
||||
@ -1063,6 +957,42 @@ buildvariants:
|
||||
PYTHON_BINARY: /opt/python/3.13/bin/python3
|
||||
tags: [versionedApi_tag]
|
||||
|
||||
# Standard nonlinux tests
|
||||
- name: test-macos
|
||||
tasks:
|
||||
- name: .standard-non-linux
|
||||
display_name: "* Test macOS"
|
||||
run_on:
|
||||
- macos-14
|
||||
tags: [standard-non-linux]
|
||||
- name: test-macos-arm64
|
||||
tasks:
|
||||
- name: .standard-non-linux .server-6.0
|
||||
- name: .standard-non-linux .server-7.0
|
||||
- name: .standard-non-linux .server-8.0
|
||||
- name: .standard-non-linux .server-rapid
|
||||
- name: .standard-non-linux .server-latest
|
||||
display_name: "* Test macOS Arm64"
|
||||
run_on:
|
||||
- macos-14-arm64
|
||||
tags: [standard-non-linux]
|
||||
- name: test-win64
|
||||
tasks:
|
||||
- name: .standard-non-linux
|
||||
display_name: "* Test Win64"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
tags: [standard-non-linux]
|
||||
- name: test-win32
|
||||
tasks:
|
||||
- name: .standard-non-linux
|
||||
display_name: "* Test Win32"
|
||||
run_on:
|
||||
- windows-64-vsMulti-small
|
||||
expansions:
|
||||
IS_WIN32: "1"
|
||||
tags: [standard-non-linux]
|
||||
|
||||
# Storage engine tests
|
||||
- name: storage-inmemory-rhel8-python3.9
|
||||
tasks:
|
||||
|
||||
@ -77,23 +77,26 @@ def create_server_version_variants() -> list[BuildVariant]:
|
||||
return variants
|
||||
|
||||
|
||||
def create_server_variants() -> list[BuildVariant]:
|
||||
def create_standard_nonlinux_variants() -> list[BuildVariant]:
|
||||
variants = []
|
||||
base_display_name = "* Test"
|
||||
|
||||
# Test a subset on each of the other platforms.
|
||||
for host_name in ("macos", "macos-arm64", "win64", "win32"):
|
||||
for python in MIN_MAX_PYTHON:
|
||||
tasks = [f"{t} !.sync_async" for t in SUB_TASKS]
|
||||
# MacOS arm64 only works on server versions 6.0+
|
||||
if host_name == "macos-arm64":
|
||||
tasks = []
|
||||
for version in get_versions_from("6.0"):
|
||||
tasks.extend(f"{t} .{version} !.sync_async" for t in SUB_TASKS)
|
||||
host = HOSTS[host_name]
|
||||
display_name = get_variant_name(base_display_name, host, python=python)
|
||||
variant = create_variant(tasks, display_name, python=python, host=host)
|
||||
variants.append(variant)
|
||||
tasks = [".standard-non-linux"]
|
||||
# MacOS arm64 only works on server versions 6.0+
|
||||
if host_name == "macos-arm64":
|
||||
tasks = [
|
||||
f".standard-non-linux .server-{version}" for version in get_versions_from("6.0")
|
||||
]
|
||||
host = HOSTS[host_name]
|
||||
tags = ["standard-non-linux"]
|
||||
expansions = dict()
|
||||
if host_name == "win32":
|
||||
expansions["IS_WIN32"] = "1"
|
||||
display_name = get_variant_name(base_display_name, host)
|
||||
variant = create_variant(tasks, display_name, host=host, tags=tags, expansions=expansions)
|
||||
variants.append(variant)
|
||||
|
||||
return variants
|
||||
|
||||
@ -591,7 +594,7 @@ def create_server_version_tasks():
|
||||
continue
|
||||
task_types.append((python, topology, auth, ssl))
|
||||
for python, topology, auth, ssl in task_types:
|
||||
tags = ["server-version", python, f"{topology}-{auth}-{ssl}"]
|
||||
tags = ["server-version", f"python-{python}", f"{topology}-{auth}-{ssl}"]
|
||||
expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology)
|
||||
if python not in PYPYS:
|
||||
expansions["COVERAGE"] = "1"
|
||||
@ -604,9 +607,37 @@ def create_server_version_tasks():
|
||||
return tasks
|
||||
|
||||
|
||||
def create_standard_non_linux_tasks():
|
||||
tasks = []
|
||||
|
||||
for (version, topology), python, sync in zip_cycle(
|
||||
list(product(ALL_VERSIONS, TOPOLOGIES)), CPYTHONS, SYNCS
|
||||
):
|
||||
auth = "auth" if topology == "sharded_cluster" else "noauth"
|
||||
ssl = "nossl" if topology == "standalone" else "ssl"
|
||||
tags = [
|
||||
"standard-non-linux",
|
||||
f"server-{version}",
|
||||
f"python-{python}",
|
||||
f"{topology}-{auth}-{ssl}",
|
||||
sync,
|
||||
]
|
||||
expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology, VERSION=version)
|
||||
name = get_task_name("test", python=python, sync=sync, **expansions)
|
||||
server_func = FunctionCall(func="run server", vars=expansions)
|
||||
test_vars = expansions.copy()
|
||||
test_vars["PYTHON_VERSION"] = python
|
||||
test_vars["TEST_NAME"] = f"default_{sync}"
|
||||
test_func = FunctionCall(func="run tests", vars=test_vars)
|
||||
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
|
||||
return tasks
|
||||
|
||||
|
||||
def create_server_tasks():
|
||||
tasks = []
|
||||
for topo, version, (auth, ssl), sync in product(TOPOLOGIES, ALL_VERSIONS, AUTH_SSLS, SYNCS):
|
||||
for topo, version, (auth, ssl), sync in product(
|
||||
TOPOLOGIES, ALL_VERSIONS, AUTH_SSLS, [*SYNCS, "sync_async"]
|
||||
):
|
||||
name = f"test-{version}-{topo}-{auth}-{ssl}-{sync}".lower()
|
||||
tags = [version, topo, auth, ssl, sync]
|
||||
server_vars = dict(
|
||||
|
||||
@ -36,7 +36,7 @@ SUB_TASKS = [
|
||||
".replica_set .noauth .ssl",
|
||||
".standalone .noauth .nossl",
|
||||
]
|
||||
SYNCS = ["sync", "async", "sync_async"]
|
||||
SYNCS = ["sync", "async"]
|
||||
DISPLAY_LOOKUP = dict(
|
||||
ssl=dict(ssl="SSL", nossl="NoSSL"),
|
||||
auth=dict(auth="Auth", noauth="NoAuth"),
|
||||
@ -44,6 +44,7 @@ DISPLAY_LOOKUP = dict(
|
||||
standalone="Standalone", replica_set="Replica Set", sharded_cluster="Sharded Cluster"
|
||||
),
|
||||
test_suites=dict(default="Sync", default_async="Async"),
|
||||
sync={"sync": "Sync", "async": "Async"},
|
||||
coverage={"1": "cov"},
|
||||
no_ext={"1": "No C"},
|
||||
)
|
||||
|
||||
@ -34,6 +34,7 @@ PASS_THROUGH_ENV = [
|
||||
"PYTHON_BINARY",
|
||||
"PYTHON_VERSION",
|
||||
"REQUIRE_FIPS",
|
||||
"IS_WIN32",
|
||||
]
|
||||
|
||||
# Map the test name to test extra.
|
||||
|
||||
@ -123,7 +123,11 @@ get_python_binary() {
|
||||
PYTHON="/Library/Frameworks/Python.Framework/Versions/$version/bin/python3"
|
||||
elif [ "Windows_NT" = "${OS:-}" ]; then
|
||||
version=$(echo $version | cut -d. -f1,2 | sed 's/\.//g')
|
||||
PYTHON="C:/python/Python$version/python.exe"
|
||||
if [ -n "${IS_WIN32:-}" ]; then
|
||||
PYTHON="C:/python/32/Python$version/python.exe"
|
||||
else
|
||||
PYTHON="C:/python/Python$version/python.exe"
|
||||
fi
|
||||
else
|
||||
PYTHON="/opt/python/$version/bin/python3"
|
||||
fi
|
||||
|
||||
42
gridfs/synchronous/__init__.py
Normal file
42
gridfs/synchronous/__init__.py
Normal file
@ -0,0 +1,42 @@
|
||||
# Copyright 2009-present MongoDB, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""GridFS is a specification for storing large objects in Mongo.
|
||||
|
||||
The :mod:`gridfs` package is an implementation of GridFS on top of
|
||||
:mod:`pymongo`, exposing a file-like interface.
|
||||
|
||||
.. seealso:: The MongoDB documentation on `gridfs <https://dochub.mongodb.org/core/gridfs>`_.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from gridfs.errors import NoFile
|
||||
from gridfs.grid_file_shared import DEFAULT_CHUNK_SIZE
|
||||
from gridfs.synchronous.grid_file import (
|
||||
GridFS,
|
||||
GridFSBucket,
|
||||
GridIn,
|
||||
GridOut,
|
||||
GridOutCursor,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"GridFS",
|
||||
"GridFSBucket",
|
||||
"NoFile",
|
||||
"DEFAULT_CHUNK_SIZE",
|
||||
"GridIn",
|
||||
"GridOut",
|
||||
"GridOutCursor",
|
||||
]
|
||||
@ -182,40 +182,36 @@ class TestSampleShellCommands(AsyncIntegrationTest):
|
||||
db = self.db
|
||||
|
||||
# Start Example 14
|
||||
# Subdocument key order matters in a few of these examples so we have
|
||||
# to use bson.son.SON instead of a Python dict.
|
||||
from bson.son import SON
|
||||
|
||||
await db.inventory.insert_many(
|
||||
[
|
||||
{
|
||||
"item": "journal",
|
||||
"qty": 25,
|
||||
"size": SON([("h", 14), ("w", 21), ("uom", "cm")]),
|
||||
"size": {"h": 14, "w": 21, "uom": "cm"},
|
||||
"status": "A",
|
||||
},
|
||||
{
|
||||
"item": "notebook",
|
||||
"qty": 50,
|
||||
"size": SON([("h", 8.5), ("w", 11), ("uom", "in")]),
|
||||
"size": {"h": 8.5, "w": 11, "uom": "in"},
|
||||
"status": "A",
|
||||
},
|
||||
{
|
||||
"item": "paper",
|
||||
"qty": 100,
|
||||
"size": SON([("h", 8.5), ("w", 11), ("uom", "in")]),
|
||||
"size": {"h": 8.5, "w": 11, "uom": "in"},
|
||||
"status": "D",
|
||||
},
|
||||
{
|
||||
"item": "planner",
|
||||
"qty": 75,
|
||||
"size": SON([("h", 22.85), ("w", 30), ("uom", "cm")]),
|
||||
"size": {"h": 22.85, "w": 30, "uom": "cm"},
|
||||
"status": "D",
|
||||
},
|
||||
{
|
||||
"item": "postcard",
|
||||
"qty": 45,
|
||||
"size": SON([("h", 10), ("w", 15.25), ("uom", "cm")]),
|
||||
"size": {"h": 10, "w": 15.25, "uom": "cm"},
|
||||
"status": "A",
|
||||
},
|
||||
]
|
||||
@ -223,13 +219,13 @@ class TestSampleShellCommands(AsyncIntegrationTest):
|
||||
# End Example 14
|
||||
|
||||
# Start Example 15
|
||||
cursor = db.inventory.find({"size": SON([("h", 14), ("w", 21), ("uom", "cm")])})
|
||||
cursor = db.inventory.find({"size": {"h": 14, "w": 21, "uom": "cm"}})
|
||||
# End Example 15
|
||||
|
||||
self.assertEqual(len(await cursor.to_list()), 1)
|
||||
|
||||
# Start Example 16
|
||||
cursor = db.inventory.find({"size": SON([("w", 21), ("h", 14), ("uom", "cm")])})
|
||||
cursor = db.inventory.find({"size": {"w": 21, "h": 14, "uom": "cm"}})
|
||||
# End Example 16
|
||||
|
||||
self.assertEqual(len(await cursor.to_list()), 0)
|
||||
@ -324,39 +320,35 @@ class TestSampleShellCommands(AsyncIntegrationTest):
|
||||
db = self.db
|
||||
|
||||
# Start Example 29
|
||||
# Subdocument key order matters in a few of these examples so we have
|
||||
# to use bson.son.SON instead of a Python dict.
|
||||
from bson.son import SON
|
||||
|
||||
await db.inventory.insert_many(
|
||||
[
|
||||
{
|
||||
"item": "journal",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 5)]),
|
||||
SON([("warehouse", "C"), ("qty", 15)]),
|
||||
{"warehouse": "A", "qty": 5},
|
||||
{"warehouse": "C", "qty": 15},
|
||||
],
|
||||
},
|
||||
{"item": "notebook", "instock": [SON([("warehouse", "C"), ("qty", 5)])]},
|
||||
{"item": "notebook", "instock": [{"warehouse": "C", "qty": 5}]},
|
||||
{
|
||||
"item": "paper",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 60)]),
|
||||
SON([("warehouse", "B"), ("qty", 15)]),
|
||||
{"warehouse": "A", "qty": 60},
|
||||
{"warehouse": "B", "qty": 15},
|
||||
],
|
||||
},
|
||||
{
|
||||
"item": "planner",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 40)]),
|
||||
SON([("warehouse", "B"), ("qty", 5)]),
|
||||
{"warehouse": "A", "qty": 40},
|
||||
{"warehouse": "B", "qty": 5},
|
||||
],
|
||||
},
|
||||
{
|
||||
"item": "postcard",
|
||||
"instock": [
|
||||
SON([("warehouse", "B"), ("qty", 15)]),
|
||||
SON([("warehouse", "C"), ("qty", 35)]),
|
||||
{"warehouse": "B", "qty": 15},
|
||||
{"warehouse": "C", "qty": 35},
|
||||
],
|
||||
},
|
||||
]
|
||||
@ -364,13 +356,13 @@ class TestSampleShellCommands(AsyncIntegrationTest):
|
||||
# End Example 29
|
||||
|
||||
# Start Example 30
|
||||
cursor = db.inventory.find({"instock": SON([("warehouse", "A"), ("qty", 5)])})
|
||||
cursor = db.inventory.find({"instock": {"warehouse": "A", "qty": 5}})
|
||||
# End Example 30
|
||||
|
||||
self.assertEqual(len(await cursor.to_list()), 1)
|
||||
|
||||
# Start Example 31
|
||||
cursor = db.inventory.find({"instock": SON([("qty", 5), ("warehouse", "A")])})
|
||||
cursor = db.inventory.find({"instock": {"qty": 5, "warehouse": "A"}})
|
||||
# End Example 31
|
||||
|
||||
self.assertEqual(len(await cursor.to_list()), 0)
|
||||
|
||||
@ -182,40 +182,36 @@ class TestSampleShellCommands(IntegrationTest):
|
||||
db = self.db
|
||||
|
||||
# Start Example 14
|
||||
# Subdocument key order matters in a few of these examples so we have
|
||||
# to use bson.son.SON instead of a Python dict.
|
||||
from bson.son import SON
|
||||
|
||||
db.inventory.insert_many(
|
||||
[
|
||||
{
|
||||
"item": "journal",
|
||||
"qty": 25,
|
||||
"size": SON([("h", 14), ("w", 21), ("uom", "cm")]),
|
||||
"size": {"h": 14, "w": 21, "uom": "cm"},
|
||||
"status": "A",
|
||||
},
|
||||
{
|
||||
"item": "notebook",
|
||||
"qty": 50,
|
||||
"size": SON([("h", 8.5), ("w", 11), ("uom", "in")]),
|
||||
"size": {"h": 8.5, "w": 11, "uom": "in"},
|
||||
"status": "A",
|
||||
},
|
||||
{
|
||||
"item": "paper",
|
||||
"qty": 100,
|
||||
"size": SON([("h", 8.5), ("w", 11), ("uom", "in")]),
|
||||
"size": {"h": 8.5, "w": 11, "uom": "in"},
|
||||
"status": "D",
|
||||
},
|
||||
{
|
||||
"item": "planner",
|
||||
"qty": 75,
|
||||
"size": SON([("h", 22.85), ("w", 30), ("uom", "cm")]),
|
||||
"size": {"h": 22.85, "w": 30, "uom": "cm"},
|
||||
"status": "D",
|
||||
},
|
||||
{
|
||||
"item": "postcard",
|
||||
"qty": 45,
|
||||
"size": SON([("h", 10), ("w", 15.25), ("uom", "cm")]),
|
||||
"size": {"h": 10, "w": 15.25, "uom": "cm"},
|
||||
"status": "A",
|
||||
},
|
||||
]
|
||||
@ -223,13 +219,13 @@ class TestSampleShellCommands(IntegrationTest):
|
||||
# End Example 14
|
||||
|
||||
# Start Example 15
|
||||
cursor = db.inventory.find({"size": SON([("h", 14), ("w", 21), ("uom", "cm")])})
|
||||
cursor = db.inventory.find({"size": {"h": 14, "w": 21, "uom": "cm"}})
|
||||
# End Example 15
|
||||
|
||||
self.assertEqual(len(cursor.to_list()), 1)
|
||||
|
||||
# Start Example 16
|
||||
cursor = db.inventory.find({"size": SON([("w", 21), ("h", 14), ("uom", "cm")])})
|
||||
cursor = db.inventory.find({"size": {"w": 21, "h": 14, "uom": "cm"}})
|
||||
# End Example 16
|
||||
|
||||
self.assertEqual(len(cursor.to_list()), 0)
|
||||
@ -324,39 +320,35 @@ class TestSampleShellCommands(IntegrationTest):
|
||||
db = self.db
|
||||
|
||||
# Start Example 29
|
||||
# Subdocument key order matters in a few of these examples so we have
|
||||
# to use bson.son.SON instead of a Python dict.
|
||||
from bson.son import SON
|
||||
|
||||
db.inventory.insert_many(
|
||||
[
|
||||
{
|
||||
"item": "journal",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 5)]),
|
||||
SON([("warehouse", "C"), ("qty", 15)]),
|
||||
{"warehouse": "A", "qty": 5},
|
||||
{"warehouse": "C", "qty": 15},
|
||||
],
|
||||
},
|
||||
{"item": "notebook", "instock": [SON([("warehouse", "C"), ("qty", 5)])]},
|
||||
{"item": "notebook", "instock": [{"warehouse": "C", "qty": 5}]},
|
||||
{
|
||||
"item": "paper",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 60)]),
|
||||
SON([("warehouse", "B"), ("qty", 15)]),
|
||||
{"warehouse": "A", "qty": 60},
|
||||
{"warehouse": "B", "qty": 15},
|
||||
],
|
||||
},
|
||||
{
|
||||
"item": "planner",
|
||||
"instock": [
|
||||
SON([("warehouse", "A"), ("qty", 40)]),
|
||||
SON([("warehouse", "B"), ("qty", 5)]),
|
||||
{"warehouse": "A", "qty": 40},
|
||||
{"warehouse": "B", "qty": 5},
|
||||
],
|
||||
},
|
||||
{
|
||||
"item": "postcard",
|
||||
"instock": [
|
||||
SON([("warehouse", "B"), ("qty", 15)]),
|
||||
SON([("warehouse", "C"), ("qty", 35)]),
|
||||
{"warehouse": "B", "qty": 15},
|
||||
{"warehouse": "C", "qty": 35},
|
||||
],
|
||||
},
|
||||
]
|
||||
@ -364,13 +356,13 @@ class TestSampleShellCommands(IntegrationTest):
|
||||
# End Example 29
|
||||
|
||||
# Start Example 30
|
||||
cursor = db.inventory.find({"instock": SON([("warehouse", "A"), ("qty", 5)])})
|
||||
cursor = db.inventory.find({"instock": {"warehouse": "A", "qty": 5}})
|
||||
# End Example 30
|
||||
|
||||
self.assertEqual(len(cursor.to_list()), 1)
|
||||
|
||||
# Start Example 31
|
||||
cursor = db.inventory.find({"instock": SON([("qty", 5), ("warehouse", "A")])})
|
||||
cursor = db.inventory.find({"instock": {"qty": 5, "warehouse": "A"}})
|
||||
# End Example 31
|
||||
|
||||
self.assertEqual(len(cursor.to_list()), 0)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user