pytest

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

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

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    26 of 1002 committers (2.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords

hacktoberfest python test testing unit-testing

Keywords from Contributors

closember pep8 static-analysis static-code-analysis code-quality codeformatter formatter yapf autopep8 gofmt
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: pytest-dev
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage: https://pytest.org
  • Size: 34.8 MB
Statistics
  • Stars: 13,016
  • Watchers: 191
  • Forks: 2,859
  • Open Issues: 936
  • Releases: 77
Topics
hacktoberfest python test testing unit-testing
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Authors

README.rst

.. image:: https://github.com/pytest-dev/pytest/raw/main/doc/en/img/pytest_logo_curves.svg
   :target: https://docs.pytest.org/en/stable/
   :align: center
   :height: 200
   :alt: pytest


------

.. image:: https://img.shields.io/pypi/v/pytest.svg
    :target: https://pypi.org/project/pytest/

.. image:: https://img.shields.io/conda/vn/conda-forge/pytest.svg
    :target: https://anaconda.org/conda-forge/pytest

.. image:: https://img.shields.io/pypi/pyversions/pytest.svg
    :target: https://pypi.org/project/pytest/

.. image:: https://codecov.io/gh/pytest-dev/pytest/branch/main/graph/badge.svg
    :target: https://codecov.io/gh/pytest-dev/pytest
    :alt: Code coverage Status

.. image:: https://github.com/pytest-dev/pytest/actions/workflows/test.yml/badge.svg
    :target: https://github.com/pytest-dev/pytest/actions?query=workflow%3Atest

.. image:: https://results.pre-commit.ci/badge/github/pytest-dev/pytest/main.svg
   :target: https://results.pre-commit.ci/latest/github/pytest-dev/pytest/main
   :alt: pre-commit.ci status

.. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
    :target: https://www.codetriage.com/pytest-dev/pytest

.. image:: https://readthedocs.org/projects/pytest/badge/?version=latest
    :target: https://pytest.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/Discord-pytest--dev-blue
    :target: https://discord.com/invite/pytest-dev
    :alt: Discord

.. image:: https://img.shields.io/badge/Libera%20chat-%23pytest-orange
    :target: https://web.libera.chat/#pytest
    :alt: Libera chat


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:

.. code-block:: python

    # 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)
  test suites out of the box

- Python 3.9+ or PyPy3

- Rich plugin architecture, with over 1300+ `external plugins `_ and thriving community


Documentation
-------------

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


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 provides 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 details in the `pytest collective`_.

.. _Open Collective: https://opencollective.com
.. _pytest collective: https://opencollective.com/pytest


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 vulnerability, 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.

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

.. _`MIT`: https://github.com/pytest-dev/pytest/blob/main/LICENSE

Owner

  • Name: pytest-dev
  • Login: pytest-dev
  • Kind: organization
  • Email: pytest-dev@python.org
  • Location: Everywhere

Citation (CITATION)

NOTE: Change "x.y" by the version you use. If you are unsure about which version
you are using run: `pip show pytest`. Do not include the patch number (i.e., z in x.y.z)

Text:

[pytest] pytest x.y, 2004
Krekel et al., https://github.com/pytest-dev/pytest

BibLaTeX:

@software{pytest,
  title        = {pytest x.y},
  author       = {Holger Krekel and Bruno Oliveira and Ronny Pfannschmidt and Floris Bruynooghe and Brianna Laugher and Florian Bruhin},
  year         = {2004},
  version      = {x.y},
  url          = {https://github.com/pytest-dev/pytest},
  note         = {Contributors: Holger Krekel and Bruno Oliveira and Ronny Pfannschmidt and Floris Bruynooghe and Brianna Laugher and Florian Bruhin and others}
}

BibTeX:

@misc{pytest,
  author       = {Holger Krekel and Bruno Oliveira and Ronny Pfannschmidt and Floris Bruynooghe and Brianna Laugher and Florian Bruhin},
  title        = {pytest x.y},
  year         = {2004},
  howpublished = {\url{https://github.com/pytest-dev/pytest}},
  note         = {Version x.y. Contributors include Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin, and others.}
}

GitHub Events

Total
  • Create event: 189
  • Release event: 3
  • Issues event: 417
  • Watch event: 1,038
  • Delete event: 183
  • Issue comment event: 1,715
  • Push event: 392
  • Pull request review event: 1,038
  • Pull request review comment event: 697
  • Pull request event: 690
  • Fork event: 245
Last Year
  • Create event: 189
  • Release event: 3
  • Issues event: 417
  • Watch event: 1,038
  • Delete event: 183
  • Issue comment event: 1,715
  • Push event: 392
  • Pull request review event: 1,038
  • Pull request review comment event: 697
  • Pull request event: 690
  • Fork event: 245

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 12,373
  • Total Committers: 1,002
  • Avg Commits per committer: 12.348
  • Development Distribution Score (DDS): 0.835
Past Year
  • Commits: 467
  • Committers: 86
  • Avg Commits per committer: 5.43
  • Development Distribution Score (DDS): 0.865
Top Committers
Name Email Commits
Bruno Oliveira n****s@g****m 2,038
holger krekel h****r@m****u 1,953
hpk n****e@n****e 1,036
Ran Benita r****n@u****m 948
Daniel Hahler g****t@t****e 818
Ronny Pfannschmidt o****e@r****e 642
Anthony Sottile a****e@u****u 265
dependabot[bot] 4****] 261
Benjamin Peterson b****n@p****g 219
pre-commit-ci[bot] 6****] 201
Florian Bruhin me@t****g 181
Floris Bruynooghe f****b@d****e 129
pytest bot p****t 111
github-actions[bot] 4****] 109
Pierre Sassoulas p****s@g****m 74
Thomas Hisch t****h@g****m 66
Anatoly Bubenkov b****f@g****m 64
Raphael Pierzina r****l@h****e 56
jakkdl h****b@p****e 56
Sviatoslav Sydorenko wk@s****a 55
Jeffrey Rackauckas j****k@g****m 47
Victor Maryama v****a@t****m 47
Thomas Grainger t****n@g****m 45
Andras Tim a****m@g****m 44
Jurko Gospodnetić j****c@p****r 41
Kale Kundert k****e@t****t 41
Simon K j****s@g****m 41
feuillemorte f****e@y****u 38
Gleb Nikonorov g****v@g****m 38
Zac Hatfield-Dodds z****s@g****m 37
and 972 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1,276
  • Total pull requests: 2,382
  • Average time to close issues: 11 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 840
  • Total pull request authors: 322
  • Average comments per issue: 4.94
  • Average comments per pull request: 1.32
  • Merged pull requests: 1,842
  • Bot issues: 6
  • Bot pull requests: 1,006
Past Year
  • Issues: 285
  • Pull requests: 845
  • Average time to close issues: 13 days
  • Average time to close pull requests: 5 days
  • Issue authors: 227
  • Pull request authors: 124
  • Average comments per issue: 1.92
  • Average comments per pull request: 1.21
  • Merged pull requests: 611
  • Bot issues: 4
  • Bot pull requests: 422
Top Authors
Issue Authors
  • bluetech (36)
  • nicoddemus (33)
  • RonnyPfannschmidt (31)
  • The-Compiler (29)
  • pytestbot (24)
  • DetachHead (18)
  • jaraco (14)
  • kloczek (12)
  • webknjaz (12)
  • harmin-parra (11)
  • blueyed (11)
  • jakkdl (10)
  • soxofaan (9)
  • Zac-HD (9)
  • mtelka (9)
Pull Request Authors
  • github-actions[bot] (398)
  • bluetech (252)
  • dependabot[bot] (250)
  • patchback[bot] (216)
  • nicoddemus (166)
  • pre-commit-ci[bot] (142)
  • webknjaz (64)
  • The-Compiler (56)
  • Pierre-Sassoulas (46)
  • jakkdl (38)
  • RonnyPfannschmidt (30)
  • graingert (20)
  • jfrost-mo (19)
  • sadra-barikbin (13)
  • dongfangtianyu (13)
Top Labels
Issue Labels
type: proposal (145) type: bug (143) status: needs information (110) type: enhancement (99) topic: fixtures (87) topic: collection (78) topic: reporting (69) type: question (65) stale (64) type: docs (61) topic: config (53) type: regression (46) status: help wanted (36) topic: parametrize (35) good first issue (31) type: infrastructure (30) plugin: logging (26) topic: rewrite (25) plugin: warnings (23) topic: marks (21) type: selftests (21) type: backward compatibility (17) plugin: doctests (17) type: performance (15) plugin: capture (14) plugin: unittest (13) topic: tracebacks (13) topic: selection (11) type: deprecation (10) type: refactoring (10)
Pull Request Labels
bot:chronographer:provided (297) dependencies (258) skip news (188) python (153) backport 8.3.x (128) github_actions (97) backport 8.2.x (71) backport 7.4.x (43) needs backport (40) type: docs (35) backport 8.0.x (31) backport 8.4.x (31) status: needs information (24) type: infrastructure (15) backport 7.3.x (13) backport 8.1.x (9) type: bug (3) type: enhancement (3) type: selftests (2) type: refactoring (2) type: performance (1) topic: typing (1)

Packages

  • Total packages: 5
  • Total downloads:
    • pypi 240,147,859 last-month
  • Total docker downloads: 5,339,444,979
  • Total dependent packages: 26,422
    (may contain duplicates)
  • Total dependent repositories: 289,723
    (may contain duplicates)
  • Total versions: 364
  • Total maintainers: 8
pypi.org: pytest

pytest: simple powerful testing with Python

  • Versions: 186
  • Dependent Packages: 25,992
  • Dependent Repositories: 283,154
  • Downloads: 240,147,837 Last month
  • Docker Downloads: 5,339,444,979
Rankings
Dependent packages count: 0.0%
Dependent repos count: 0.0%
Downloads: 0.0%
Docker downloads count: 0.0%
Average: 0.2%
Stargazers count: 0.5%
Forks count: 0.5%
Funding
  • https://docs.pytest.org/en/stable/sponsor.html
Last synced: 6 months ago
conda-forge.org: pytest

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

  • Versions: 101
  • Dependent Packages: 394
  • Dependent Repositories: 3,283
Rankings
Dependent repos count: 0.1%
Dependent packages count: 0.1%
Average: 1.4%
Forks count: 2.3%
Stargazers count: 2.9%
Last synced: 6 months ago
proxy.golang.org: github.com/pytest-dev/pytest
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Forks count: 0.1%
Stargazers count: 0.6%
Average: 3.4%
Dependent repos count: 3.5%
Dependent packages count: 9.6%
Last synced: 6 months ago
anaconda.org: pytest

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

  • Versions: 74
  • Dependent Packages: 36
  • Dependent Repositories: 3,283
Rankings
Dependent repos count: 0.7%
Dependent packages count: 1.0%
Average: 4.0%
Forks count: 6.7%
Stargazers count: 7.8%
Last synced: 6 months ago
pypi.org: pyland

based on pytest to create test framework automatically

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 22 Last month
Rankings
Stargazers count: 0.2%
Forks count: 0.3%
Dependent packages count: 7.4%
Average: 17.2%
Dependent repos count: 22.2%
Downloads: 56.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

doc/en/requirements.txt pypi
  • jinja2 <3.1
  • pallets-sphinx-themes *
  • pluggy >=1.0
  • pygments-pytest >=2.2.0
  • sphinx >=3.1,<4
  • sphinx-removed-in >=0.2.0
  • sphinxcontrib-svg2pdfconverter *
  • sphinxcontrib-trio *
testing/plugins_integration/requirements.txt pypi
  • anyio ==3.6.1
  • django ==4.0.6
  • pytest-asyncio ==0.18.3
  • pytest-bdd ==6.0.1
  • pytest-cov ==3.0.0
  • pytest-django ==4.5.2
  • pytest-flakes ==4.0.5
  • pytest-html ==3.1.1
  • pytest-mock ==3.8.2
  • pytest-rerunfailures ==10.2
  • pytest-sugar ==0.9.5
  • pytest-trio ==0.7.0
  • pytest-twisted ==1.13.4
  • pytest-xvfb ==2.0.0
  • twisted ==22.4.0
.github/workflows/backport.yml actions
  • actions/checkout v3 composite
.github/workflows/deploy.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/prepare-release-pr.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/update-plugin-list.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peter-evans/create-pull-request 2b011faafdcbc9ceb11414d64d0573f37c774b04 composite
.github/workflows/stale.yml actions
  • actions/stale v8 composite
pyproject.toml pypi