To contribute to Pika, please make sure that any new features or changes to existing functionality include test coverage.
Pull requests that add or change code without coverage have a much lower chance of being accepted.
Pika test suite has a couple of requirements:
- Dependencies from
test-dependencies.txt
are installed - A RabbitMQ node with all defaults is running on
localhost:5672
To install the dependencies needed to run Pika tests, use
pip install -r test-requirements.txt
which on Python 3 might look like this
pip3 install -r test-requirements.txt
To run all test suites, use
nosetests
Note that some tests are OS-specific (e.g. epoll on Linux or kqueue on MacOS and BSD). Those will be skipped automatically.
If you would like to run TLS/SSL tests, use the following procedure:
-
Create a
rabbitmq.conf
file:sed -e "s#PIKA_DIR#$PWD#g" ./testdata/rabbitmq.conf.in > ./testdata/rabbitmq.conf
-
Start RabbitMQ and use the configuration file you just created. An example command that works with the
generic-unix
package is as follows:$ RABBITMQ_CONFIG_FILE=/path/to/pika/testdata/rabbitmq.conf ./sbin/rabbitmq-server
-
Run the tests indicating that TLS/SSL connections should be used:
PIKA_TEST_TLS=true nosetests
Please format your code using yapf
with google
style prior to issuing your pull request.