The main usage is to use the
qtbot fixture, which provides methods to simulate user
interaction, like key presses and mouse clicks:
def test_hello(qtbot): widget = HelloWidget() qtbot.addWidget(widget) # click in the Greet button and make sure it updates the appropriate label qtbot.mouseClick(window.button_greet, QtCore.Qt.LeftButton) assert window.greet_label.text() == 'Hello!'
Python 2.7 or later, including Python 3.4+.
Requires pytest version 2.7 or later.
Works with either
PySide2, picking whichever
is available on the system giving preference to the first one installed in
To force a particular API, set the configuration variable
qt_api in your
pytest.ini file to
pyqt4v2 sets the
API to version 2.
Alternatively, you can set the
PYTEST_QT_API environment variable to the
same values described above (the environment variable wins over the
configuration if both are set).
pytest-qt version 2 the behaviour of
pyqt4v2 has changed, as
explained in A note about pyqt4v2.
The package may be installed by running:
pip install pytest-qt
Or alternatively, download the package from pypi, extract and execute:
python setup.py install
Both methods will automatically register it for usage in
If you intend to develop
pytest-qt itself, use virtualenv to
activate a new fresh environment and execute:
git clone https://github.com/pytest-dev/pytest-qt.git cd pytest-qt pip install -e . # or python setup.py develop pip install pyside # or pyqt4/pyqt5
If you also intend to build the documentation locally, you can make sure to have all the needed dependences executing:
pip install -e .[doc]