A goody-bag of nifty plugins for pytest
| OS | Build | Coverage |
|---|---|---|
![]() |
||
![]() |
| Plugin | Description | Supported OS |
|---|---|---|
| pytest-server-fixtures | Extensible server-running framework with a suite of well-known databases and webservices included | ![]() |
| pytest-shutil | Unix shell and environment management tools | ![]() |
| pytest-profiling | Profiling plugin with tabular heat graph output and gprof support for C-Extensions | ![]() |
| pytest-devpi-server | DevPI server fixture | ![]() |
| pytest-pyramid-server | Pyramid server fixture | ![]() |
| pytest-webdriver | Selenium webdriver fixture | ![]() |
| pytest-virtualenv | Virtualenv fixture | ![]() |
| pytest-qt-app | PyQT application fixture | ![]() |
| pytest-listener | TCP Listener/Reciever for testing remote systems | ![]() |
| pytest-git | Git repository fixture | ![]() |
| pytest-svn | SVN repository fixture | ![]() |
| pytest-fixture-config | Configuration tools for Py.test fixtures | ![]() |
| pytest-verbose-parametrize | Makes py.test's parametrize output a little more verbose | ![]() |
All of these plugins share setup code and configuration so there is a top-level Makefile to automate process of setting them up for test and development.
You have python installed on your path, preferably using a virtualenv
To install all dependencies and set up all of the packages for development simply run:
make developTo install all the packages as wheel distributions:
make installTo run all the tests:
make testSome of the plugins have complex dependencies, particularly pytest-server-fixtures.
To make it easier to develop, there is a Vagrantfile which will setup a virtual machine
with all the dependencies installed to run the tests.
To set up the environment in Vagrant (requires virtualbox) and run the tests:
$ vagrant up
$ vagrant ssh
# ..... inside vagrant ....
. venv/bin/activate
cd src
make develop
make testTo run a command in each of the package directories, use the foreach.sh script.
This example will build all the wheel distributions:
./foreach.sh python setup.py bdist_wheelTo run a command only on packages that have changed since the last tagged release, use --changed.
This example will only upload packages that need releasing:
./foreach.sh python setup.py bdist_wheel uploadTo run a command with no extra output other than from what you run, use --quiet
./foreach.sh --quiet grep PY3
