Skip to content

man-group/pytest-plugins

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

A goody-bag of nifty plugins for pytest

OS Build Coverage
Linux CircleCI (Linux) Coverage Status
Windows Travic CI (Windows)
Plugin Description Supported OS
pytest-server-fixtures Extensible server-running framework with a suite of well-known databases and webservices included Linux
pytest-shutil Unix shell and environment management tools Linux
pytest-profiling Profiling plugin with tabular heat graph output and gprof support for C-Extensions Linux
pytest-devpi-server DevPI server fixture Linux
pytest-pyramid-server Pyramid server fixture Linux
pytest-webdriver Selenium webdriver fixture Linux
pytest-virtualenv Virtualenv fixture Linux Windows
pytest-qt-app PyQT application fixture Linux
pytest-listener TCP Listener/Reciever for testing remote systems Linux Windows
pytest-git Git repository fixture Linux Windows
pytest-svn SVN repository fixture Linux
pytest-fixture-config Configuration tools for Py.test fixtures Linux Windows
pytest-verbose-parametrize Makes py.test's parametrize output a little more verbose Linux

Developing these plugins

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.

Pre-requisites

You have python installed on your path, preferably using a virtualenv

Makefile targets

To install all dependencies and set up all of the packages for development simply run:

    make develop

To install all the packages as wheel distributions:

    make install

To run all the tests:

    make test

Vagrant

Some 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 test

foreach.sh

To 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_wheel

Only-Changed mode

To 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 upload

Quiet mode

To run a command with no extra output other than from what you run, use --quiet

    ./foreach.sh --quiet grep PY3