Go to file
Michael Birtwell a3bda59a30 collection: Prevent non-function callables from being collected
Fixes issue 331
previously to this change the collection code would issue a warning for
when ever it encountered a variable that looked like a test but wasn't a
function saying that it wouldn't collect it because it wasn't a function.
This fixes the logic so that if that warning is issued it really isn't
collected.
However previously special cases existed to support tests that were
created using functools.wraps and functools.partial. So the condition for
issuing that warning has been updated to take that in to account

Also try the old way of detecting functions just for proper integration
with mock.path in python 2.7 the get_real_func returned the unbound method
2015-10-12 22:23:18 +01:00
_pytest collection: Prevent non-function callables from being collected 2015-10-12 22:23:18 +01:00
appveyor Remove unused run_with_env script 2015-09-14 11:28:07 -03:00
bench simplify internal pytester machinery 2014-10-06 13:37:57 +02:00
doc/en Use a string for pytest_plugins in docs. 2015-10-12 06:57:43 +02:00
extra another update for get_issues.py to account for repository move 2015-02-27 09:12:00 -05:00
testing collection: Prevent non-function callables from being collected 2015-10-12 22:23:18 +01:00
.coveragerc Ignore vendored_packages folder for coverage purposes 2015-09-14 10:30:58 -03:00
.gitattributes Use "union" merge strategy for CHANGELOG 2015-08-10 19:27:22 -03:00
.gitignore revert setuptools_scm addition introduced with f22d14b105 2015-09-17 12:58:04 +02:00
.travis.yml Update travis with new tox environments 2015-09-26 03:43:37 -03:00
AUTHORS collection: Prevent non-function callables from being collected 2015-10-12 22:23:18 +01:00
CHANGELOG collection: Prevent non-function callables from being collected 2015-10-12 22:23:18 +01:00
CONTRIBUTING.rst avoid pullrequest picture and fix bugfix/feature target info. 2015-09-29 13:48:38 +02:00
HOWTORELEASE.rst Add a reminder on HOWTORELEASE to update plugins_index 2015-10-02 19:44:00 -03:00
ISSUES.txt fix some spelling mistakes 2014-10-13 23:16:26 +01:00
LICENSE * use the MIT license for the py lib 2009-10-03 01:11:04 +02:00
MANIFEST.in fix manifest 2013-08-15 13:05:01 +02:00
README.rst Various Python 3.5 documentation mentions 2015-09-17 07:32:52 -04:00
appveyor.yml Test py27-xdist and py35 environments on AppVeyor 2015-09-26 03:46:03 -03:00
plugin-test.sh add pluginmanager.do_configure(config) as a link to 2013-10-04 11:36:45 +02:00
pytest.py revert setuptools_scm addition introduced with f22d14b105 2015-09-17 12:58:04 +02:00
requirements-docs.txt use regendoc normalization and regenerate docs 2015-06-06 23:30:49 +02:00
runtox.py make runtox.py not import external modules unless run as a script 2014-04-05 08:51:00 +02:00
setup.cfg configure a plain "devpi upload" to create sdist and universal wheel 2015-07-09 14:56:56 +02:00
setup.py Merge pull request #1019 from mdboom/python3.5-docs 2015-09-17 13:45:35 +02:00
tox.ini Use py35 as preferred py3 interpreter for special test environments 2015-09-26 03:37:21 -03:00

README.rst

======
pytest
======

The ``pytest`` testing tool makes it easy to write small tests, yet
scales to support complex functional testing.

.. image:: http://img.shields.io/pypi/v/pytest.svg
   :target: https://pypi.python.org/pypi/pytest
.. image:: http://img.shields.io/coveralls/pytest-dev/pytest/master.svg
   :target: https://coveralls.io/r/pytest-dev/pytest
.. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
    :target: https://travis-ci.org/pytest-dev/pytest
.. image:: https://ci.appveyor.com/api/projects/status/mrgbjaua7t33pg6b?svg=true
    :target: https://ci.appveyor.com/project/pytestbot/pytest

Documentation: http://pytest.org/latest/

Changelog: http://pytest.org/latest/changelog.html

Issues: https://github.com/pytest-dev/pytest/issues

Features
--------

- `auto-discovery
  <http://pytest.org/latest/goodpractises.html#python-test-discovery>`_
  of test modules and functions,
- detailed info on failing `assert statements <http://pytest.org/latest/assert.html>`_ (no need to remember ``self.assert*`` names)
- `modular fixtures <http://pytest.org/latest/fixture.html>`_  for
  managing small or parametrized long-lived test resources.
- multi-paradigm support: you can use ``pytest`` to run test suites based
  on `unittest <http://pytest.org/latest/unittest.html>`_ (or trial),
  `nose <http://pytest.org/latest/nose.html>`_
- single-source compatibility from Python2.6 all the way up to
  Python3.5, PyPy-2.3, (jython-2.5 untested)


- many `external plugins <http://pytest.org/latest/plugins.html#installing-external-plugins-searching>`_.

A simple example for a test:

.. code-block:: python

    # content of test_module.py
    def test_function():
        i = 4
        assert i == 3

which can be run with ``py.test test_module.py``.  See `getting-started <http://pytest.org/latest/getting-started.html#our-first-test-run>`_ for more examples.

For much more info, including PDF docs, see

    http://pytest.org

and report bugs at:

    https://github.com/pytest-dev/pytest/issues

and checkout or fork repo at:

    https://github.com/pytest-dev/pytest


Copyright Holger Krekel and others, 2004-2015
Licensed under the MIT license.