diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4f26678..57a57a7 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -26,6 +26,7 @@ Added
Changed
~~~~~~~
+* 📝 Expand the pytest plugins section
* 🎨 Restructure the documentation
* Move packages outside libraries
diff --git a/docs/conf.py b/docs/conf.py
index 155ad5c..632ddf1 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -73,6 +73,8 @@
r"https://sourceforge.net/",
]
+linkcheck_anchors_ignore = ["readme"]
+
# All HTTP redirections from the source URI to the canonical URI will be treated# as "working".
linkcheck_allowed_redirects = {
r"https://devpi\.net/docs/$": r"https://devpi\.net/docs/[-a-z]+/(?:latest|stable|master)/$",
diff --git a/docs/test/pytest/plugins.rst b/docs/test/pytest/plugins.rst
index df647ad..cb1ebdf 100644
--- a/docs/test/pytest/plugins.rst
+++ b/docs/test/pytest/plugins.rst
@@ -48,20 +48,103 @@ usual sequence of a test:
`pytest-xdist `_
executes tests in parallel, either with several CPUs on one machine or
several remote machines.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-xdist
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-xdist/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-xdist
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-xdist/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-xdist
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-xdist/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-xdist
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-xdist?tab=MIT-1-ov-file#readme
+
`pytest-freethreaded `_
for checking whether tests and libraries are thread-safe with Python 3.13’s
experimental freethreaded mode.
+
+ .. image:: https://raster.shields.io/github/stars/tonybaloney/pytest-freethreaded
+ :alt: Stars
+ :target: https://github.com/tonybaloney/pytest-freethreaded/stargazers
+ .. image:: https://raster.shields.io/github/contributors/tonybaloney/pytest-freethreaded
+ :alt: Contributors
+ :target: https://github.com/tonybaloney/pytest-freethreaded/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/tonybaloney/pytest-freethreaded
+ :alt: Commit activity
+ :target: https://github.com/tonybaloney/pytest-freethreaded/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/tonybaloney/pytest-freethreaded
+ :alt: Lizenz
+ :target: https://github.com/tonybaloney/pytest-freethreaded?tab=MIT-1-ov-file#readme
+
`pytest-rerunfailures `_
re-executes failed tests and is particularly helpful in the case of faulty
tests.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-rerunfailures
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-dev/pytest-rerunfailures
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-rerunfailures
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-rerunfailures/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-rerunfailures
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-rerunfailures/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-rerunfailures
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-rerunfailures?tab=License-1-ov-file#readme
+
`pytest-repeat `_
makes it easy to repeat one or more tests.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-repeat
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-repeat/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-repeat
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-repeat/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-repeat
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-repeat/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-repeat
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-repeat?tab=License-1-ov-file#readme
+
`pytest-order `_
enables the order to be defined using :doc:`markers`.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-order
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-order/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-order
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-order/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-order
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-order/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-xdist
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-xdist?tab=MIT-1-ov-file#readme
+
`pytest-randomly `_
runs the tests in random order, first by file, then by class, then by test
file.
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-randomly
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-randomly/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-randomly
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-randomly/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-randomly
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-randomly/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-randomly
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-randomly?tab=MIT-1-ov-file#readme
+
… modified output
~~~~~~~~~~~~~~~~~
@@ -73,18 +156,87 @@ result. However, there are plugins that change the output even further:
adds a ``--instafail`` option that reports tracebacks and output from failed
tests immediately after the failure. Normally, pytest reports tracebacks and
output from failed tests only after all tests have completed.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-instafail
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-instafail/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-instafail
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-instafail/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-instafail
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-instafail/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-instafail
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-rerunfailures?tab=License-1-ov-file#readme
+
`pytest-edit `_
opens an editor after a failed test.
+
+ .. image:: https://raster.shields.io/github/stars/mrmino/pytest-edit
+ :alt: Stars
+ :target: https://github.com/mrmino/pytest-edit/stargazers
+ .. image:: https://raster.shields.io/github/contributors/mrmino/pytest-edit
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/mrmino/pytest-edit
+ .. image:: https://raster.shields.io/github/commit-activity/y/mrmino/pytest-edit
+ :alt: Commit activity
+ :target: https://github.com/mrmino/pytest-edit/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/mrmino/pytest-edit
+ :alt: Lizenz
+ :target: https://github.com/mrmino/pytest-edit?tab=MIT-1-ov-file#readme
+
`pytest-sugar `_
shows green checkmarks instead of dots for passed tests and has a nice
progress bar. Like pytest-instafail, it also shows failures immediately.
+
+ .. image:: https://raster.shields.io/github/stars/Teemu/pytest-sugar
+ :alt: Stars
+ :target: https://github.com/Teemu/pytest-sugar/stargazers
+ .. image:: https://raster.shields.io/github/contributors/Teemu/pytest-sugar
+ :alt: Contributors
+ :target: https://github.com/Teemu/pytest-sugar/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/Teemu/pytest-sugar
+ :alt: Commit activity
+ :target: https://github.com/Teemu/pytest-sugar/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/Teemu/pytest-sugar
+ :alt: Lizenz
+ :target: https://github.com/Teemu/pytest-sugar?tab=License-1-ov-file#readme
+
`pytest-html `_
enables the creation of HTML reports. Reports can be extended with
additional data and images, such as screenshots of error cases.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-html
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-html/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-html
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-html/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-html
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-html/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-html
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-html?tab=License-1-ov-file#readme
+
`pytest-icdiff `_
improves diffs in the error messages of the pytest assertion with `ICDiff
`_.
+ .. image:: https://raster.shields.io/github/stars/hjwp/pytest-icdiff
+ :alt: Stars
+ :target: https://github.com/hjwp/pytest-icdiff/stargazers
+ .. image:: https://raster.shields.io/github/contributors/hjwp/pytest-icdiff
+ :alt: Contributors
+ :target: https://github.com/hjwp/pytest-icdiff/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/hjwp/pytest-icdiff
+ :alt: Commit activity
+ :target: https://github.com/hjwp/pytest-icdiff/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/hjwp/pytest-icdiff
+ :alt: Lizenz
+ :target: https://github.com/hjwp/pytest-icdiff?tab=MIT-1-ov-file#readme
+
… web development
~~~~~~~~~~~~~~~~~
@@ -95,16 +247,71 @@ plugins that further simplify testing:
`pytest-httpx `_
facilitates the testing of `HTTPX `_ and
`FastAPI `_ applications.
+
+ .. image:: https://raster.shields.io/github/stars/Colin-b/pytest_httpx
+ :alt: Stars
+ :target: https://github.com/Colin-b/pytest_httpx/stargazers
+ .. image:: https://raster.shields.io/github/contributors/Colin-b/pytest_httpx
+ :alt: Contributors
+ :target: https://github.com/Colin-b/pytest_httpx/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/Colin-b/pytest_httpx
+ :alt: Commit activity
+ :target: https://github.com/Colin-b/pytest_httpx/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/Colin-b/pytest_httpx
+ :alt: Lizenz
+ :target: https://github.com/Colin-b/pytest_httpx?tab=MIT-1-ov-file#readme
+
`Playwright for Python `_
was specially developed for end-to-end testing. Playwright supports all
modern rendering engines such as Chromium, WebKit and Firefox with a single
:abbr:`API (Application Programming Interface)`.
+
+ .. image:: https://raster.shields.io/github/stars/Microsoft/playwright-python
+ :alt: Stars
+ :target: https://github.com/Microsoft/playwright-python/stargazers
+ .. image:: https://raster.shields.io/github/contributors/Microsoft/playwright-python
+ :alt: Contributors
+ :target: https://github.com/Microsoft/playwright-python/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/Microsoft/playwright-python
+ :alt: Commit activity
+ :target: https://github.com/Microsoft/playwright-python/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/Microsoft/playwright-python
+ :alt: Lizenz
+ :target: https://github.com/Microsoft/playwright-python?tab=MIT-1-ov-file#readme
+
`pyleniumio `_
is a thin Python wrapper around Selenium with simple and clear syntax.
+
+ .. image:: https://raster.shields.io/github/stars/ElSnoMan/pyleniumio
+ :alt: Stars
+ :target: https://github.com/ElSnoMan/pyleniumio/stargazers
+ .. image:: https://raster.shields.io/github/contributors/ElSnoMan/pyleniumio
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/ElSnoMan/pyleniumio
+ .. image:: https://raster.shields.io/github/commit-activity/y/ElSnoMan/pyleniumio
+ :alt: Commit activity
+ :target: https://github.com/ElSnoMan/pyleniumio/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/ElSnoMan/pyleniumio
+ :alt: Lizenz
+ :target: https://github.com/ElSnoMan/pyleniumio?tab=MIT-1-ov-file#readme
+
`pytest-selenium `_
provides fixtures that enable simple configuration of browser-based tests
with `Selenium `_.
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-selenium
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-selenium/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-selenium
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-selenium
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-selenium
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-selenium/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-selenium
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-selenium?tab=License-1-ov-file#readme
+
.. _fake_plugins:
… fake data
@@ -117,29 +324,169 @@ therefore not surprising that there are several plugins that fulfil this need:
`Faker `_
generates fake data for you and offers a faker fixture for use with pytest.
+
+ .. image:: https://raster.shields.io/github/stars/joke2k/faker
+ :alt: Stars
+ :target: https://github.com/joke2k/faker/stargazers
+ .. image:: https://raster.shields.io/github/contributors/joke2k/faker
+ :alt: Contributors
+ :target: https://github.com/joke2k/faker/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/joke2k/faker
+ :alt: Commit activity
+ :target: https://github.com/joke2k/faker/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/joke2k/faker
+ :alt: Lizenz
+ :target: https://github.com/joke2k/faker?tab=MIT-1-ov-file#readme
+
`pytest-factoryboy `_
contains fixtures for `factory-boy
`_, a database model data generator.
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-factoryboy
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-factoryboy/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-factoryboy
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-factoryboy/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-factoryboy
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-factoryboy/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-factoryboy
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-factoryboy?tab=MIT-1-ov-file#readme
+
… various things
~~~~~~~~~~~~~~~~
`pytest-cov `_
executes the :doc:`../pytest/coverage` during testing.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-cov
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-cov/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-cov
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-cov/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-cov
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-cov/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-cov
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-cov?tab=MIT-1-ov-file#readme
+
`pytest-benchmark `_
performs benchmark timing for code within tests.
+
+ .. image:: https://raster.shields.io/github/stars/ionelmc/pytest-benchmark
+ :alt: Stars
+ :target: https://github.com/ionelmc/pytest-benchmark/stargazers
+ .. image:: https://raster.shields.io/github/contributors/ionelmc/pytest-benchmark
+ :alt: Contributors
+ :target: https://github.com/ionelmc/pytest-benchmark/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/ionelmc/pytest-benchmark
+ :alt: Commit activity
+ :target: https://github.com/ionelmc/pytest-benchmark/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/ionelmc/pytest-benchmark
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/ionelmc/pytest-benchmark-1-ov-file#readme
+
`pytest-timeout `_
prevents tests from running too long.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-timeout
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-timeout/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-timeout
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-timeout/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-timeout
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-timeout/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-timeout
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-timeout?tab=MIT-1-ov-file#readme
+
`pytest-asyncio `_
tests asynchronous functions.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-asyncio
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-asyncio/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-asyncio
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-asyncio/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-asyncio
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-asyncio/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-asyncio
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-asyncio?tab=MIT-1-ov-file#readme
+
`pytest-mock `_
is a thin wrapper around the :doc:`unittest.mock <../mock>` patching API.
+
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-mock
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-mock/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-mock
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-mock/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-mock
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-mock/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-mock
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-mock?tab=MIT-1-ov-file#readme
+
+`pytest-patterns `_
+ provides a pattern matching engine optimised for tests.
+
+ .. image:: https://raster.shields.io/github/stars/flyingcircusio/pytest-patterns
+ :alt: Stars
+ :target: https://github.com/flyingcircusio/pytest-patterns/stargazers
+ .. image:: https://raster.shields.io/github/contributors/flyingcircusio/pytest-patterns
+ :alt: Contributors
+ :target: https://github.com/flyingcircusio/pytest-patterns/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/flyingcircusio/pytest-patterns
+ :alt: Commit activity
+ :target: https://github.com/flyingcircusio/pytest-patterns/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/flyingcircusio/pytest-patterns
+ :alt: Lizenz
+ :target: https://github.com/flyingcircusio/pytest-patterns?tab=MIT-1-ov-file#readme
+
:doc:`pytest-grpc `
is a Pytest plugin for
:doc:`Python4DataScience:data-processing/apis/grpc/index`.
+
+ .. image:: https://raster.shields.io/github/stars/kataev/pytest-grpc
+ :alt: Stars
+ :target: https://github.com/kataev/pytest-grpc/stargazers
+ .. image:: https://raster.shields.io/github/contributors/kataev/pytest-grpc
+ :alt: Contributors
+ :target: https://github.com/kataev/pytest-grpc/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/kataev/pytest-grpc
+ :alt: Commit activity
+ :target: https://github.com/kataev/pytest-grpc/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/kataev/pytest-grpc
+ :alt: Lizenz
+ :target: https://github.com/kataev/pytest-grpc?tab=MIT-1-ov-file#readme
+
`pytest-bdd `_
writes :abbr:`BDD (Behavior Driven Development)` tests with pytest.
+ .. image:: https://raster.shields.io/github/stars/pytest-dev/pytest-bdd
+ :alt: Stars
+ :target: https://github.com/pytest-dev/pytest-bdd/stargazers
+ .. image:: https://raster.shields.io/github/contributors/pytest-dev/pytest-bdd
+ :alt: Contributors
+ :target: https://github.com/pytest-dev/pytest-bdd/graphs/contributors
+ .. image:: https://raster.shields.io/github/commit-activity/y/pytest-dev/pytest-bdd
+ :alt: Commit activity
+ :target: https://github.com/pytest-dev/pytest-bdd/graphs/commit-activity
+ .. image:: https://raster.shields.io/github/license/pytest-dev/pytest-bdd
+ :alt: Lizenz
+ :target: https://github.com/pytest-dev/pytest-bdd?tab=MIT-1-ov-file#readme
+
Own plugins
-----------