Running Tests
Recommended way to run tests is using scripts/run-python-test.sh script provided in the core repository.
This script compiles the library in debug mode and runs the tests using tox. By default it will run all “offline” tests and skip all functional end-to-end tests that require accounts on real email servers.
Running “Live” Tests With Temporary Accounts
If you want to run live functional tests
you can set CHATMAIL_DOMAIN
to a domain of the email server
that creates email accounts like this:
export CHATMAIL_DOMAIN=nine.testrun.org
With this account-creation setting, pytest runs create ephemeral email accounts on the server. These accounts have the pattern ci-{6 characters}@{CHATMAIL_DOMAIN}. After setting the variable, either rerun scripts/run-python-test.sh or run offline and online tests with tox directly:
tox -e py
Each test run creates new accounts.
Developing the Bindings
If you want to develop or debug the bindings, you can create a testing development environment using tox:
export DCC_RS_DEV="$PWD"
export DCC_RS_TARGET=debug
tox -c python --devenv env -e py
. env/bin/activate
Inside this environment the bindings are installed in editable mode (as if installed with python -m pip install -e) together with the testing dependencies like pytest and its plugins.
You can then edit the source code in the development tree and quickly run pytest manually without waiting for tox to recreating the virtual environment each time.