2010-11-06 06:37:31 +08:00
|
|
|
|
2010-11-18 21:56:16 +08:00
|
|
|
.. _`pytest helpers`:
|
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
Pytest API and builtin fixtures
|
2010-11-06 06:37:31 +08:00
|
|
|
================================================
|
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
This is a list of ``pytest.*`` API functions and fixtures.
|
|
|
|
|
|
|
|
For information on plugin hooks and objects, see :ref:`plugins`.
|
|
|
|
|
|
|
|
For information on the ``pytest.mark`` mechanism, see :ref:`mark`.
|
2010-11-06 06:37:31 +08:00
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
For the below objects, you can also interactively ask for help, e.g. by
|
|
|
|
typing on the Python interactive prompt something like::
|
2010-11-06 06:37:31 +08:00
|
|
|
|
|
|
|
import pytest
|
|
|
|
help(pytest)
|
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
.. currentmodule:: pytest
|
|
|
|
|
|
|
|
Invoking pytest interactively
|
|
|
|
---------------------------------------------------
|
|
|
|
|
|
|
|
.. autofunction:: main
|
|
|
|
|
|
|
|
More examples at :ref:`pytest.main-usage`
|
|
|
|
|
|
|
|
|
|
|
|
Helpers for assertions about Exceptions/Warnings
|
|
|
|
--------------------------------------------------------
|
|
|
|
|
|
|
|
.. autofunction:: raises
|
|
|
|
|
|
|
|
Examples at :ref:`assertraises`.
|
|
|
|
|
|
|
|
.. autofunction:: deprecated_call
|
2010-11-06 06:37:31 +08:00
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
Raising a specific test outcome
|
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
You can use the following functions in your test, fixture or setup
|
|
|
|
functions to force a certain test outcome. Note that most often
|
|
|
|
you can rather use declarative marks, see :ref:`skipping`.
|
|
|
|
|
2012-10-12 20:52:36 +08:00
|
|
|
.. autofunction:: _pytest.runner.fail
|
|
|
|
.. autofunction:: _pytest.runner.skip
|
|
|
|
.. autofunction:: _pytest.runner.importorskip
|
|
|
|
.. autofunction:: _pytest.skipping.xfail
|
|
|
|
.. autofunction:: _pytest.runner.exit
|
2012-10-09 20:35:17 +08:00
|
|
|
|
|
|
|
fixtures and requests
|
|
|
|
-----------------------------------------------------
|
|
|
|
|
|
|
|
To mark a fixture function:
|
|
|
|
|
2012-10-12 20:52:36 +08:00
|
|
|
.. autofunction:: _pytest.python.fixture
|
2012-10-09 20:35:17 +08:00
|
|
|
|
|
|
|
Tutorial at :ref:`fixtures`.
|
|
|
|
|
|
|
|
The ``request`` object that can be used from fixture functions.
|
|
|
|
|
|
|
|
.. autoclass:: _pytest.python.FixtureRequest()
|
2010-11-06 06:37:31 +08:00
|
|
|
:members:
|
2010-11-06 06:37:31 +08:00
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
|
2012-10-07 19:06:17 +08:00
|
|
|
.. _builtinfixtures:
|
|
|
|
.. _builtinfuncargs:
|
2011-10-21 21:45:56 +08:00
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
Builtin fixtures/function arguments
|
|
|
|
-----------------------------------------
|
2010-11-06 06:37:31 +08:00
|
|
|
|
|
|
|
You can ask for available builtin or project-custom
|
2012-10-09 20:35:17 +08:00
|
|
|
:ref:`fixtures <fixtures>` by typing::
|
2010-11-06 06:37:31 +08:00
|
|
|
|
2012-10-09 20:35:17 +08:00
|
|
|
$ py.test -q --fixtures
|
2015-09-22 20:02:11 +08:00
|
|
|
cache
|
2015-09-26 00:41:07 +08:00
|
|
|
Return a cache object that can persist state between testing sessions.
|
|
|
|
|
|
|
|
cache.get(key, default)
|
|
|
|
cache.set(key, value)
|
|
|
|
|
2015-10-07 03:06:25 +08:00
|
|
|
Keys must be a ``/`` separated value, where the first part is usually the
|
|
|
|
name of your plugin or application to avoid clashes with other cache users.
|
2015-09-26 00:41:07 +08:00
|
|
|
|
|
|
|
Values can be any object handled by the json stdlib module.
|
2010-11-06 06:37:31 +08:00
|
|
|
capsys
|
2011-03-04 06:40:38 +08:00
|
|
|
enables capturing of writes to sys.stdout/sys.stderr and makes
|
|
|
|
captured output available via ``capsys.readouterr()`` method calls
|
|
|
|
which return a ``(out, err)`` tuple.
|
2010-11-06 06:37:31 +08:00
|
|
|
capfd
|
2011-03-04 06:40:38 +08:00
|
|
|
enables capturing of writes to file descriptors 1 and 2 and makes
|
2014-07-17 22:55:24 +08:00
|
|
|
captured output available via ``capfd.readouterr()`` method calls
|
2011-03-04 06:40:38 +08:00
|
|
|
which return a ``(out, err)`` tuple.
|
2015-09-22 20:02:11 +08:00
|
|
|
record_xml_property
|
|
|
|
Fixture that adds extra xml properties to the tag for the calling test.
|
|
|
|
The fixture is callable with (name, value), with value being automatically
|
|
|
|
xml-encoded.
|
2010-11-06 06:37:31 +08:00
|
|
|
monkeypatch
|
|
|
|
The returned ``monkeypatch`` funcarg provides these
|
|
|
|
helper methods to modify objects, dictionaries or os.environ::
|
2010-11-26 20:26:56 +08:00
|
|
|
|
2010-11-06 06:37:31 +08:00
|
|
|
monkeypatch.setattr(obj, name, value, raising=True)
|
|
|
|
monkeypatch.delattr(obj, name, raising=True)
|
|
|
|
monkeypatch.setitem(mapping, name, value)
|
|
|
|
monkeypatch.delitem(obj, name, raising=True)
|
|
|
|
monkeypatch.setenv(name, value, prepend=False)
|
|
|
|
monkeypatch.delenv(name, value, raising=True)
|
|
|
|
monkeypatch.syspath_prepend(path)
|
2012-02-06 07:33:04 +08:00
|
|
|
monkeypatch.chdir(path)
|
2010-11-26 20:26:56 +08:00
|
|
|
|
2011-03-04 06:40:38 +08:00
|
|
|
All modifications will be undone after the requesting
|
|
|
|
test function has finished. The ``raising``
|
2010-11-06 06:37:31 +08:00
|
|
|
parameter determines if a KeyError or AttributeError
|
|
|
|
will be raised if the set/deletion operation has no target.
|
2012-10-18 18:24:50 +08:00
|
|
|
pytestconfig
|
|
|
|
the pytest config object with access to command line opts.
|
2010-11-06 06:37:31 +08:00
|
|
|
recwarn
|
|
|
|
Return a WarningsRecorder instance that provides these methods:
|
2010-11-26 20:26:56 +08:00
|
|
|
|
2010-11-06 06:37:31 +08:00
|
|
|
* ``pop(category=None)``: return last warning matching the category.
|
|
|
|
* ``clear()``: clear list of warnings
|
2010-11-26 20:26:56 +08:00
|
|
|
|
2011-03-04 06:40:38 +08:00
|
|
|
See http://docs.python.org/library/warnings.html for information
|
|
|
|
on warning categories.
|
2015-09-22 20:02:11 +08:00
|
|
|
tmpdir_factory
|
|
|
|
Return a TempdirFactory instance for the test session.
|
2012-10-18 18:24:50 +08:00
|
|
|
tmpdir
|
|
|
|
return a temporary directory path object
|
|
|
|
which is unique to each test function invocation,
|
|
|
|
created as a sub directory of the base temporary
|
|
|
|
directory. The returned object is a `py.path.local`_
|
|
|
|
path object.
|
2011-08-21 00:37:00 +08:00
|
|
|
|
2015-06-07 05:30:49 +08:00
|
|
|
in 0.12 seconds
|