From 448b153bfc470b6851bdc69576e71138f8c2c6e9 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 16 Jun 2025 09:54:05 -0500 Subject: [PATCH 1/2] PYTHON-5343 Clean up contributing docs --- CONTRIBUTING.md | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fa500273af..e9b1900b74 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -190,13 +190,15 @@ just docs-serve Browse to the link provided, and then as you make changes to docstrings or narrative docs, the pages will re-render and the browser will automatically refresh. - ## Running Tests Locally -- Ensure you have started the appropriate Mongo Server(s). - Run `just install` to set a local virtual environment, or you can manually create a virtual environment and run `pytest` directly. If you want to use a specific version of Python, remove the `.venv` folder and set `PYTHON_BINARY` before running `just install`. +- Ensure you have started the appropriate Mongo Server(s). You can run `just run-server` with optional args + to set up the server. All given options will be passed to + `run-orchestration.sh` in `$DRIVERS_TOOLS`. See `$DRIVERS_TOOLS/evergreen/run-orchestration.sh -h` + for a full list of options. - Run `just test` or `pytest` to run all of the tests. - Append `test/.py::::` to run specific tests. You can omit the `` to test a full class @@ -213,18 +215,35 @@ the pages will re-render and the browser will automatically refresh. `git clone git@github.com:mongodb-labs/drivers-evergreen-tools.git`. - Run `export DRIVERS_TOOLS=$PWD/drivers-evergreen-tools`. This can be put into a `.bashrc` file for convenience. -- Set up access to [Drivers test secrets](https://github.com/mongodb-labs/drivers-evergreen-tools/tree/master/.evergreen/secrets_handling#secrets-handling). +- Some tests require access to [Drivers test secrets](https://github.com/mongodb-labs/drivers-evergreen-tools/tree/master/.evergreen/secrets_handling#secrets-handling). ### Usage -- Run `just run-server` with optional args to set up the server. All given options will be passed to - `run-orchestration.sh` in `$DRIVERS_TOOLS`. See `$DRIVERS_TOOLS/evergreen/run-orchestration.sh -h` - for a full list of options. +- Run `just run-server` with optional args to set up the server. - Run `just setup-tests` with optional args to set up the test environment, secrets, etc. See `just setup-tests -h` for a full list of available options. - Run `just run-tests` to run the tests in an appropriate Python environment. - When done, run `just teardown-tests` to clean up and `just stop-server` to stop the server. +### SSL tests + +- Run `just run-server --ssl` to start the server with TLS enabled. +- Run `just setup-tests --ssl`. +- Run `just run-tests` + +Note: for general testing purposes with an TLS-enabled server, you can use the following: + +```python +from pymongo import MongoClient + +client = MongoClient( + "mongodb://localhost:27017?tls=true&tlsAllowInvalidCertificates=true" +) +``` + +If you want to use the actual certificate file then set `tlsCertificateKeyFile` to the local path +to `/test/certificates/client.pem` and `tlsCAFile` to the local path to `/test/certificates/ca.pem`. + ### Encryption tests - Run `just run-server` to start the server. @@ -434,6 +453,7 @@ run `pre-commit run --all-files --hook-stage manual ruff` and fix all reported e hook again. ## Converting a test to async + The `tools/convert_test_to_async.py` script takes in an existing synchronous test file and outputs a partially-converted asynchronous version of the same name to the `test/asynchronous` directory. Use this generated file as a starting point for the completed conversion. From 11a26d5aad65ae280df6bdee456f3df8aafac92a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 16 Jun 2025 10:44:36 -0500 Subject: [PATCH 2/2] address review --- CONTRIBUTING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9b1900b74..5a2bf4d913 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -197,7 +197,7 @@ the pages will re-render and the browser will automatically refresh. version of Python, remove the `.venv` folder and set `PYTHON_BINARY` before running `just install`. - Ensure you have started the appropriate Mongo Server(s). You can run `just run-server` with optional args to set up the server. All given options will be passed to - `run-orchestration.sh` in `$DRIVERS_TOOLS`. See `$DRIVERS_TOOLS/evergreen/run-orchestration.sh -h` + [`run-orchestration.sh`](https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-orchestration.sh). Run `$DRIVERS_TOOLS/evergreen/run-orchestration.sh -h` for a full list of options. - Run `just test` or `pytest` to run all of the tests. - Append `test/.py::::` to run @@ -229,9 +229,10 @@ the pages will re-render and the browser will automatically refresh. - Run `just run-server --ssl` to start the server with TLS enabled. - Run `just setup-tests --ssl`. -- Run `just run-tests` +- Run `just run-tests`. -Note: for general testing purposes with an TLS-enabled server, you can use the following: +Note: for general testing purposes with an TLS-enabled server, you can use the following (this should ONLY be used +for local testing): ```python from pymongo import MongoClient