Python 3.6 or newer is required.
$ python --version
Python 3.11.1
Install Nox for task management.
$ python -m pip install nox
Tests require a live instance of OpenSearch running in docker.
This will start a new instance and run tests against the latest version of OpenSearch.
./.ci/run-tests
If your OpenSearch docker instance is running, you can execute the test suite directly.
$ nox -rs test
To run tests against different versions of OpenSearch, use run-tests [with/without security] [version]
:
./.ci/run-tests true 1.3.0
The first argument tells whether to run server with security plugin enabled or not. The second argument specifies the version of OpenSearch the tests should run against, if not specified, the tests run against the latest version. You can also run tests against a current SNAPSHOT.
The following example runs tests against the latest SNAPSHOT build of OpenSearch without security.
./.ci/run-tests opensearch false SNAPSHOT
Note that integration tests require docker to be installed and running, and downloads quite a bit of data from over the internet and hence take few minutes to complete.
Run the linter and test suite to ensure your changes do not break existing code. The following will auto-format your changes.
$ nox -rs format
To build the documentation with Sphinx.
pip install -e .[docs]
cd docs
make html
Open opensearch-py/docs/build/html/index.html
to see results.