Skip to content
The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
Python
Branch: master
Clone or download
nicoddemus Remove check for os.symlink, always there in py3+ (#6227)
Remove check for os.symlink, always there in py3+
Latest commit f36ea24 Nov 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Make whole checklist a comment to avoid incomplete TODOs in PRs Nov 14, 2019
bench Add rudimentary mypy type checking Jul 9, 2019
changelog Merge pull request #6202 from linw1995/fix_getmodpath Nov 18, 2019
doc/en Preparing release version 5.2.4 Nov 15, 2019
extra Revert allow_abbrev=False in helper scripts Jun 25, 2019
scripts Workaround curl bug which makes retries of fetching codecov.io/bash n… Oct 12, 2019
src Merge pull request #6202 from linw1995/fix_getmodpath Nov 18, 2019
testing Remove check for os.symlink, always there in py3+ Nov 19, 2019
.coveragerc .coveragerc: add report section Aug 15, 2019
.gitattributes Add codecov support to AppVeyor and remove coveralls Sep 5, 2018
.gitignore Add rudimentary mypy type checking Jul 9, 2019
.pre-commit-config.yaml Move `@overload` to compat Aug 18, 2019
.travis.yml ci: Travis: remove py38 from allowed failures; do not use "-dev" Nov 6, 2019
AUTHORS Merge pull request #6202 from linw1995/fix_getmodpath Nov 18, 2019
CHANGELOG.rst remove trailing-whitespace Nov 16, 2019
CITATION Fix linting issues Jul 14, 2018
CODE_OF_CONDUCT.md Add a code of conduct Aug 8, 2019
CONTRIBUTING.rst Update URL: python/black → psf/black Aug 10, 2019
HOWTORELEASE.rst Update release instructions for 4.6-maintenance Jun 2, 2019
LICENSE Update copyright year Jan 4, 2019
OPENCOLLECTIVE.rst doc: fix typos in OPENCOLLECTIVE.rst [ci skip] Jul 10, 2019
README.rst Update Tidelift docs with latest campaign Oct 24, 2019
TIDELIFT.rst Add docs about Tidelift and OpenCollective Jun 30, 2019
azure-pipelines.yml ci: optimize twisted/pexpect related jobs Jun 8, 2019
codecov.yml ci: add codecov.yml to turn comments off Aug 15, 2019
pyproject.toml Add new 'improvement' changelog category Aug 10, 2019
setup.cfg setup.cfg: fix check-manifest ignore [ci skip] Nov 8, 2019
setup.py tests: keep numpy being optional Oct 16, 2019
tox.ini tests: filterwarnings: do not crash with "(rm_rf)" warning Oct 18, 2019

README.rst

pytest
Code coverage Status https://travis-ci.org/pytest-dev/pytest.svg?branch=master https://dev.azure.com/pytest-dev/pytest/_apis/build/status/pytest-CI?branchName=master

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.

An example of a simple test:

# content of test_sample.py
def inc(x):
    return x + 1


def test_answer():
    assert inc(3) == 5

To execute it:

$ pytest
============================= test session starts =============================
collected 1 items

test_sample.py F

================================== FAILURES ===================================
_________________________________ test_answer _________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_sample.py:5: AssertionError
========================== 1 failed in 0.04 seconds ===========================

Due to pytest's detailed assertion introspection, only plain assert statements are used. See getting-started for more examples.

Features

  • Detailed info on failing assert statements (no need to remember self.assert* names);
  • Auto-discovery of test modules and functions;
  • Modular fixtures for managing small or parametrized long-lived test resources;
  • Can run unittest (or trial), nose test suites out of the box;
  • Python 3.5+ and PyPy3;
  • Rich plugin architecture, with over 315+ external plugins and thriving community;

Documentation

For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/latest/.

Bugs/Requests

Please use the GitHub issue tracker to submit bugs or request features.

Changelog

Consult the Changelog page for fixes and enhancements of each version.

Support pytest

Open Collective is an online funding platform for open and transparent communities. It provide tools to raise money and share your finances in full transparency.

It is the platform of choice for individuals and companies that want to make one-time or monthly donations directly to the project.

See more datails in the pytest collective.

pytest for enterprise

Available as part of the Tidelift Subscription.

The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.

Learn more.

Security

pytest has never been associated with a security vunerability, but in any case, to report a security vulnerability please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

License

Copyright Holger Krekel and others, 2004-2019.

Distributed under the terms of the MIT license, pytest is free and open source software.

You can’t perform that action at this time.