diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index df801864f..09d37aaa2 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -55,6 +55,7 @@ jobs:
"windows-py310",
"windows-py311",
"windows-py312",
+ "windows-py313",
"ubuntu-py38",
"ubuntu-py38-pluggy",
@@ -63,12 +64,14 @@ jobs:
"ubuntu-py310",
"ubuntu-py311",
"ubuntu-py312",
+ "ubuntu-py313",
"ubuntu-pypy3",
"macos-py38",
"macos-py39",
"macos-py310",
"macos-py312",
+ "macos-py313",
"doctesting",
"plugins",
@@ -97,9 +100,13 @@ jobs:
os: windows-latest
tox_env: "py311"
- name: "windows-py312"
- python: "3.12-dev"
+ python: "3.12"
os: windows-latest
tox_env: "py312"
+ - name: "windows-py313"
+ python: "3.13-dev"
+ os: windows-latest
+ tox_env: "py313"
- name: "ubuntu-py38"
python: "3.8"
@@ -128,10 +135,15 @@ jobs:
tox_env: "py311"
use_coverage: true
- name: "ubuntu-py312"
- python: "3.12-dev"
+ python: "3.12"
os: ubuntu-latest
tox_env: "py312"
use_coverage: true
+ - name: "ubuntu-py313"
+ python: "3.13-dev"
+ os: ubuntu-latest
+ tox_env: "py313"
+ use_coverage: true
- name: "ubuntu-pypy3"
python: "pypy-3.8"
os: ubuntu-latest
@@ -151,9 +163,13 @@ jobs:
os: macos-latest
tox_env: "py310-xdist"
- name: "macos-py312"
- python: "3.12-dev"
+ python: "3.12"
os: macos-latest
tox_env: "py312-xdist"
+ - name: "macos-py313"
+ python: "3.13-dev"
+ os: macos-latest
+ tox_env: "py313-xdist"
- name: "plugins"
python: "3.12"
diff --git a/changelog/12120.bugfix.rst b/changelog/12120.bugfix.rst
deleted file mode 100644
index b1ca4913b..000000000
--- a/changelog/12120.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix `PermissionError` crashes arising from directories which are not selected on the command-line.
diff --git a/changelog/12191.bugfix.rst b/changelog/12191.bugfix.rst
deleted file mode 100644
index 5102d4698..000000000
--- a/changelog/12191.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Keyboard interrupts and system exits are now properly handled during the test collection.
diff --git a/changelog/12300.bugfix.rst b/changelog/12300.bugfix.rst
deleted file mode 100644
index 6c1624820..000000000
--- a/changelog/12300.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
diff --git a/changelog/12308.bugfix.rst b/changelog/12308.bugfix.rst
deleted file mode 100644
index 07995427a..000000000
--- a/changelog/12308.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix a regression in pytest 8.2.0 where the permissions of automatically-created ``.pytest_cache`` directories became ``rwx------`` instead of the expected ``rwxr-xr-x``.
diff --git a/changelog/12333.trivial.rst b/changelog/12333.trivial.rst
deleted file mode 100644
index 32c4c5771..000000000
--- a/changelog/12333.trivial.rst
+++ /dev/null
@@ -1 +0,0 @@
-pytest releases are now attested using the recent `Artifact Attestation ` support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.
diff --git a/doc/en/announce/index.rst b/doc/en/announce/index.rst
index 4d0a3ab55..8a33f7fb5 100644
--- a/doc/en/announce/index.rst
+++ b/doc/en/announce/index.rst
@@ -6,6 +6,7 @@ Release announcements
:maxdepth: 2
+ release-8.2.1
release-8.2.0
release-8.1.2
release-8.1.1
diff --git a/doc/en/announce/release-8.2.1.rst b/doc/en/announce/release-8.2.1.rst
new file mode 100644
index 000000000..4452edec1
--- /dev/null
+++ b/doc/en/announce/release-8.2.1.rst
@@ -0,0 +1,19 @@
+pytest-8.2.1
+=======================================
+
+pytest 8.2.1 has just been released to PyPI.
+
+This is a bug-fix release, being a drop-in replacement. To upgrade::
+
+ pip install --upgrade pytest
+
+The full changelog is available at https://docs.pytest.org/en/stable/changelog.html.
+
+Thanks to all of the contributors to this release:
+
+* Bruno Oliveira
+* Ran Benita
+
+
+Happy testing,
+The pytest Development Team
diff --git a/doc/en/builtin.rst b/doc/en/builtin.rst
index d5f2e9a1b..458253fab 100644
--- a/doc/en/builtin.rst
+++ b/doc/en/builtin.rst
@@ -22,7 +22,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
cachedir: .pytest_cache
rootdir: /home/sweet/project
collected 0 items
- cache -- .../_pytest/cacheprovider.py:542
+ cache -- .../_pytest/cacheprovider.py:549
Return a cache object that can persist state between testing sessions.
cache.get(key, default)
diff --git a/doc/en/changelog.rst b/doc/en/changelog.rst
index d5cde4988..ca7f5b999 100644
--- a/doc/en/changelog.rst
+++ b/doc/en/changelog.rst
@@ -28,6 +28,38 @@ with advance notice in the **Deprecations** section of releases.
.. towncrier release notes start
+pytest 8.2.1 (2024-05-19)
+=========================
+
+Improvements
+------------
+
+- `#12334 `_: Support for Python 3.13 (beta1 at the time of writing).
+
+
+
+Bug Fixes
+---------
+
+- `#12120 `_: Fix `PermissionError` crashes arising from directories which are not selected on the command-line.
+
+
+- `#12191 `_: Keyboard interrupts and system exits are now properly handled during the test collection.
+
+
+- `#12300 `_: Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
+
+
+- `#12308 `_: Fix a regression in pytest 8.2.0 where the permissions of automatically-created ``.pytest_cache`` directories became ``rwx------`` instead of the expected ``rwxr-xr-x``.
+
+
+
+Trivial/Internal Changes
+------------------------
+
+- `#12333 `_: pytest releases are now attested using the recent `Artifact Attestation `_ support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.
+
+
pytest 8.2.0 (2024-04-27)
=========================
diff --git a/doc/en/example/parametrize.rst b/doc/en/example/parametrize.rst
index 1bbe2faaa..03f6852e5 100644
--- a/doc/en/example/parametrize.rst
+++ b/doc/en/example/parametrize.rst
@@ -162,7 +162,7 @@ objects, they are still using the default pytest representation:
rootdir: /home/sweet/project
collected 8 items
-
+
@@ -239,7 +239,7 @@ If you just collect tests you'll also nicely see 'advanced' and 'basic' as varia
rootdir: /home/sweet/project
collected 4 items
-
+
@@ -318,7 +318,7 @@ Let's first see how it looks like at collection time:
rootdir: /home/sweet/project
collected 2 items
-
+
diff --git a/doc/en/example/pythoncollection.rst b/doc/en/example/pythoncollection.rst
index a383173d0..aa9d05d72 100644
--- a/doc/en/example/pythoncollection.rst
+++ b/doc/en/example/pythoncollection.rst
@@ -152,7 +152,7 @@ The test collection would look like this:
configfile: pytest.ini
collected 2 items
-
+
@@ -215,7 +215,7 @@ You can always peek at the collection tree without running tests like this:
configfile: pytest.ini
collected 3 items
-
+
diff --git a/doc/en/getting-started.rst b/doc/en/getting-started.rst
index 468de3654..94e0d80e6 100644
--- a/doc/en/getting-started.rst
+++ b/doc/en/getting-started.rst
@@ -22,7 +22,7 @@ Install ``pytest``
.. code-block:: bash
$ pytest --version
- pytest 8.2.0
+ pytest 8.2.1
.. _`simpletest`:
diff --git a/doc/en/how-to/fixtures.rst b/doc/en/how-to/fixtures.rst
index 72b69a146..6cc20c8c3 100644
--- a/doc/en/how-to/fixtures.rst
+++ b/doc/en/how-to/fixtures.rst
@@ -1418,7 +1418,7 @@ Running the above tests results in the following test IDs being used:
rootdir: /home/sweet/project
collected 12 items
-
+
diff --git a/doc/en/reference/plugin_list.rst b/doc/en/reference/plugin_list.rst
index d03861ccf..43c4748ea 100644
--- a/doc/en/reference/plugin_list.rst
+++ b/doc/en/reference/plugin_list.rst
@@ -27,7 +27,7 @@ please refer to `the update script =2.7.3)
:pypi:`pytest-allure-collection` pytest plugin to collect allure markers without running any tests Apr 13, 2023 N/A pytest
:pypi:`pytest-allure-dsl` pytest plugin to test case doc string dls instructions Oct 25, 2020 4 - Beta pytest
+ :pypi:`pytest-allure-id2history` Overwrite allure history id with testcase full name and testcase id if testcase has id, exclude parameters. May 14, 2024 4 - Beta pytest>=6.2.0
:pypi:`pytest-allure-intersection` Oct 27, 2022 N/A pytest (<5)
:pypi:`pytest-allure-spec-coverage` The pytest plugin aimed to display test coverage of the specs(requirements) in Allure Oct 26, 2021 N/A pytest
:pypi:`pytest-alphamoon` Static code checks used at Alphamoon Dec 30, 2021 5 - Production/Stable pytest (>=3.5.0)
@@ -126,7 +127,7 @@ This list contains 1457 plugins.
:pypi:`pytest-aviator` Aviator's Flakybot pytest plugin that automatically reruns flaky tests. Nov 04, 2022 4 - Beta pytest
:pypi:`pytest-avoidance` Makes pytest skip tests that don not need rerunning May 23, 2019 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-aws` pytest plugin for testing AWS resource configurations Oct 04, 2017 4 - Beta N/A
- :pypi:`pytest-aws-apigateway` pytest plugin for AWS ApiGateway May 10, 2024 4 - Beta pytest
+ :pypi:`pytest-aws-apigateway` pytest plugin for AWS ApiGateway May 18, 2024 4 - Beta pytest
:pypi:`pytest-aws-config` Protect your AWS credentials in unit tests May 28, 2021 N/A N/A
:pypi:`pytest-aws-fixtures` A series of fixtures to use in integration tests involving actual AWS services. Feb 02, 2024 N/A pytest (>=8.0.0,<9.0.0)
:pypi:`pytest-axe` pytest plugin for axe-selenium-python Nov 12, 2018 N/A pytest (>=3.0.0)
@@ -147,7 +148,7 @@ This list contains 1457 plugins.
:pypi:`pytest-bdd-wrappers` Feb 11, 2020 2 - Pre-Alpha N/A
:pypi:`pytest-beakerlib` A pytest plugin that reports test results to the BeakerLib framework Mar 17, 2017 5 - Production/Stable pytest
:pypi:`pytest-beartype` Pytest plugin to run your tests with beartype checking enabled. Jan 25, 2024 N/A pytest
- :pypi:`pytest-bec-e2e` BEC pytest plugin for end-to-end tests May 08, 2024 3 - Alpha pytest
+ :pypi:`pytest-bec-e2e` BEC pytest plugin for end-to-end tests May 17, 2024 3 - Alpha pytest
:pypi:`pytest-beds` Fixtures for testing Google Appengine (GAE) apps Jun 07, 2016 4 - Beta N/A
:pypi:`pytest-beeprint` use icdiff for better error messages in pytest assertions Jul 04, 2023 4 - Beta N/A
:pypi:`pytest-bench` Benchmark utility that plugs into pytest. Jul 21, 2014 3 - Alpha N/A
@@ -232,6 +233,7 @@ This list contains 1457 plugins.
:pypi:`pytest-ckan` Backport of CKAN 2.9 pytest plugin and fixtures to CAKN 2.8 Apr 28, 2020 4 - Beta pytest
:pypi:`pytest-clarity` A plugin providing an alternative, colourful diff output for failing assertions. Jun 11, 2021 N/A N/A
:pypi:`pytest-cldf` Easy quality control for CLDF datasets using pytest Nov 07, 2022 N/A pytest (>=3.6)
+ :pypi:`pytest-cleanslate` Collects and executes pytest tests separately May 15, 2024 N/A pytest
:pypi:`pytest_cleanup` Automated, comprehensive and well-organised pytest test cases. Jan 28, 2020 N/A N/A
:pypi:`pytest-cleanuptotal` A cleanup plugin for pytest Mar 19, 2024 5 - Production/Stable N/A
:pypi:`pytest-clerk` A set of pytest fixtures to help with integration testing with Clerk. Apr 19, 2024 N/A pytest<9.0.0,>=8.0.0
@@ -241,7 +243,7 @@ This list contains 1457 plugins.
:pypi:`pytest-cloud` Distributed tests planner plugin for pytest testing framework. Oct 05, 2020 6 - Mature N/A
:pypi:`pytest-cloudflare-worker` pytest plugin for testing cloudflare workers Mar 30, 2021 4 - Beta pytest (>=6.0.0)
:pypi:`pytest-cloudist` Distribute tests to cloud machines without fuss Sep 02, 2022 4 - Beta pytest (>=7.1.2,<8.0.0)
- :pypi:`pytest-cmake` Provide CMake module for Pytest May 06, 2024 N/A pytest<9,>=4
+ :pypi:`pytest-cmake` Provide CMake module for Pytest May 12, 2024 N/A pytest<9,>=4
:pypi:`pytest-cmake-presets` Execute CMake Presets via pytest Dec 26, 2022 N/A pytest (>=7.2.0,<8.0.0)
:pypi:`pytest-cobra` PyTest plugin for testing Smart Contracts for Ethereum blockchain. Jun 29, 2019 3 - Alpha pytest (<4.0.0,>=3.7.1)
:pypi:`pytest_codeblocks` Test code blocks in your READMEs Sep 17, 2023 5 - Production/Stable pytest >= 7.0.0
@@ -357,7 +359,7 @@ This list contains 1457 plugins.
:pypi:`pytest-dir-equal` pytest-dir-equals is a pytest plugin providing helpers to assert directories equality allowing golden testing Dec 11, 2023 4 - Beta pytest>=7.3.2
:pypi:`pytest-disable` pytest plugin to disable a test and skip it from testrun Sep 10, 2015 4 - Beta N/A
:pypi:`pytest-disable-plugin` Disable plugins per test Feb 28, 2019 4 - Beta pytest (>=3.5.0)
- :pypi:`pytest-discord` A pytest plugin to notify test results to a Discord channel. Oct 18, 2023 4 - Beta pytest !=6.0.0,<8,>=3.3.2
+ :pypi:`pytest-discord` A pytest plugin to notify test results to a Discord channel. May 11, 2024 4 - Beta pytest!=6.0.0,<9,>=3.3.2
:pypi:`pytest-discover` Pytest plugin to record discovered tests in a file Mar 26, 2024 N/A pytest
:pypi:`pytest-ditto` Snapshot testing pytest plugin with minimal ceremony and flexible persistence formats. May 07, 2024 4 - Beta pytest>=3.5.0
:pypi:`pytest-django` A Django plugin for pytest. Jan 30, 2024 5 - Production/Stable pytest >=7.0.0
@@ -553,7 +555,7 @@ This list contains 1457 plugins.
:pypi:`pytest-flask-sqlalchemy` A pytest plugin for preserving test isolation in Flask-SQlAlchemy using database transactions. Apr 30, 2022 4 - Beta pytest (>=3.2.1)
:pypi:`pytest-flask-sqlalchemy-transactions` Run tests in transactions using pytest, Flask, and SQLalchemy. Aug 02, 2018 4 - Beta pytest (>=3.2.1)
:pypi:`pytest-flexreport` Apr 15, 2023 4 - Beta pytest
- :pypi:`pytest-fluent` A pytest plugin in order to provide logs via fluentd Jun 26, 2023 4 - Beta pytest (>=7.0.0)
+ :pypi:`pytest-fluent` A pytest plugin in order to provide logs via fluentd May 15, 2024 4 - Beta pytest>=7.0.0
:pypi:`pytest-fluentbit` A pytest plugin in order to provide logs via fluentbit Jun 16, 2023 4 - Beta pytest (>=7.0.0)
:pypi:`pytest-fly` pytest observer Apr 14, 2024 3 - Alpha pytest
:pypi:`pytest-flyte` Pytest fixtures for simplifying Flyte integration testing May 03, 2021 N/A pytest
@@ -621,13 +623,13 @@ This list contains 1457 plugins.
:pypi:`pytest-helpers-namespace` Pytest Helpers Namespace Plugin Dec 29, 2021 5 - Production/Stable pytest (>=6.0.0)
:pypi:`pytest-henry` Aug 29, 2023 N/A N/A
:pypi:`pytest-hidecaptured` Hide captured output May 04, 2018 4 - Beta pytest (>=2.8.5)
- :pypi:`pytest-himark` This plugin aims to create markers automatically based on a json configuration. May 10, 2024 4 - Beta pytest>=6.2.0
+ :pypi:`pytest-himark` This plugin aims to create markers automatically based on a json configuration. May 15, 2024 4 - Beta pytest>=6.2.0
:pypi:`pytest-historic` Custom report to display pytest historical execution records Apr 08, 2020 N/A pytest
:pypi:`pytest-historic-hook` Custom listener to store execution results into MYSQL DB, which is used for pytest-historic report Apr 08, 2020 N/A pytest
:pypi:`pytest-history` Pytest plugin to keep a history of your pytest runs Jan 14, 2024 N/A pytest (>=7.4.3,<8.0.0)
:pypi:`pytest-home` Home directory fixtures Oct 09, 2023 5 - Production/Stable pytest
:pypi:`pytest-homeassistant` A pytest plugin for use with homeassistant custom components. Aug 12, 2020 4 - Beta N/A
- :pypi:`pytest-homeassistant-custom-component` Experimental package to automatically extract test plugins for Home Assistant custom components May 11, 2024 3 - Alpha pytest==8.1.1
+ :pypi:`pytest-homeassistant-custom-component` Experimental package to automatically extract test plugins for Home Assistant custom components May 18, 2024 3 - Alpha pytest==8.1.1
:pypi:`pytest-honey` A simple plugin to use with pytest Jan 07, 2022 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-honors` Report on tests that honor constraints, and guard against regressions Mar 06, 2020 4 - Beta N/A
:pypi:`pytest-hot-reloading` Apr 18, 2024 N/A N/A
@@ -708,7 +710,7 @@ This list contains 1457 plugins.
:pypi:`pytest-jest` A custom jest-pytest oriented Pytest reporter May 22, 2018 4 - Beta pytest (>=3.3.2)
:pypi:`pytest-jinja` A plugin to generate customizable jinja-based HTML reports in pytest Oct 04, 2022 3 - Alpha pytest (>=6.2.5,<7.0.0)
:pypi:`pytest-jira` py.test JIRA integration plugin, using markers Apr 30, 2024 3 - Alpha N/A
- :pypi:`pytest-jira-xfail` Plugin skips (xfail) tests if unresolved Jira issue(s) linked Jun 19, 2023 N/A pytest (>=7.2.0)
+ :pypi:`pytest-jira-xfail` Plugin skips (xfail) tests if unresolved Jira issue(s) linked May 16, 2024 N/A pytest>=7.2.0
:pypi:`pytest-jira-xray` pytest plugin to integrate tests with JIRA XRAY Mar 27, 2024 4 - Beta pytest>=6.2.4
:pypi:`pytest-job-selection` A pytest plugin for load balancing test suites Jan 30, 2023 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-jobserver` Limit parallel tests with posix jobserver. May 15, 2019 5 - Production/Stable pytest
@@ -732,7 +734,7 @@ This list contains 1457 plugins.
:pypi:`pytest-kivy` Kivy GUI tests fixtures using pytest Jul 06, 2021 4 - Beta pytest (>=3.6)
:pypi:`pytest-knows` A pytest plugin that can automaticly skip test case based on dependence info calculated by trace Aug 22, 2014 N/A N/A
:pypi:`pytest-konira` Run Konira DSL tests with py.test Oct 09, 2011 N/A N/A
- :pypi:`pytest-kookit` Your simple but kooky integration testing with pytest May 06, 2024 N/A N/A
+ :pypi:`pytest-kookit` Your simple but kooky integration testing with pytest May 16, 2024 N/A N/A
:pypi:`pytest-koopmans` A plugin for testing the koopmans package Nov 21, 2022 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-krtech-common` pytest krtech common library Nov 28, 2016 4 - Beta N/A
:pypi:`pytest-kubernetes` Sep 14, 2023 N/A pytest (>=7.2.1,<8.0.0)
@@ -764,7 +766,7 @@ This list contains 1457 plugins.
:pypi:`pytest-litter` Pytest plugin which verifies that tests do not modify file trees. Nov 23, 2023 4 - Beta pytest >=6.1
:pypi:`pytest-live` Live results for pytest Mar 08, 2020 N/A pytest
:pypi:`pytest-local-badge` Generate local badges (shields) reporting your test suite status. Jan 15, 2023 N/A pytest (>=6.1.0)
- :pypi:`pytest-localftpserver` A PyTest plugin which provides an FTP fixture for your tests Oct 14, 2023 5 - Production/Stable pytest
+ :pypi:`pytest-localftpserver` A PyTest plugin which provides an FTP fixture for your tests May 17, 2024 5 - Production/Stable pytest
:pypi:`pytest-localserver` pytest plugin to test server connections locally. Oct 12, 2023 4 - Beta N/A
:pypi:`pytest-localstack` Pytest plugin for AWS integration tests Jun 07, 2023 4 - Beta pytest (>=6.0.0,<7.0.0)
:pypi:`pytest-lock` pytest-lock is a pytest plugin that allows you to "lock" the results of unit tests, storing them in a local cache. This is particularly useful for tests that are resource-intensive or don't need to be run every time. When the tests are run subsequently, pytest-lock will compare the current results with the locked results and issue a warning if there are any discrepancies. Feb 03, 2024 N/A pytest (>=7.4.3,<8.0.0)
@@ -800,7 +802,7 @@ This list contains 1457 plugins.
:pypi:`pytest-maybe-raises` Pytest fixture for optional exception testing. May 27, 2022 N/A pytest ; extra == 'dev'
:pypi:`pytest-mccabe` pytest plugin to run the mccabe code complexity checker. Jul 22, 2020 3 - Alpha pytest (>=5.4.0)
:pypi:`pytest-md` Plugin for generating Markdown reports for pytest results Jul 11, 2019 3 - Alpha pytest (>=4.2.1)
- :pypi:`pytest-md-report` A pytest plugin to generate test outcomes reports with markdown table format. May 03, 2024 4 - Beta pytest!=6.0.0,<9,>=3.3.2
+ :pypi:`pytest-md-report` A pytest plugin to generate test outcomes reports with markdown table format. May 18, 2024 4 - Beta pytest!=6.0.0,<9,>=3.3.2
:pypi:`pytest-meilisearch` Pytest helpers for testing projects using Meilisearch Feb 15, 2024 N/A pytest (>=7.4.3)
:pypi:`pytest-memlog` Log memory usage during tests May 03, 2023 N/A pytest (>=7.3.0,<8.0.0)
:pypi:`pytest-memprof` Estimates memory consumption of test functions Mar 29, 2019 4 - Beta N/A
@@ -875,7 +877,7 @@ This list contains 1457 plugins.
:pypi:`pytest-nginx-iplweb` nginx fixture for pytest - iplweb temporary fork Mar 01, 2019 5 - Production/Stable N/A
:pypi:`pytest-ngrok` Jan 20, 2022 3 - Alpha pytest
:pypi:`pytest-ngsfixtures` pytest ngs fixtures Sep 06, 2019 2 - Pre-Alpha pytest (>=5.0.0)
- :pypi:`pytest-nhsd-apim` Pytest plugin accessing NHSDigital's APIM proxies Feb 16, 2024 N/A pytest (>=6.2.5,<7.0.0)
+ :pypi:`pytest-nhsd-apim` Pytest plugin accessing NHSDigital's APIM proxies May 17, 2024 N/A pytest<9.0.0,>=8.2.0
:pypi:`pytest-nice` A pytest plugin that alerts user of failed test cases with screen notifications May 04, 2019 4 - Beta pytest
:pypi:`pytest-nice-parametrize` A small snippet for nicer PyTest's Parametrize Apr 17, 2021 5 - Production/Stable N/A
:pypi:`pytest_nlcov` Pytest plugin to get the coverage of the new lines (based on git diff) only Apr 11, 2024 N/A N/A
@@ -975,7 +977,7 @@ This list contains 1457 plugins.
:pypi:`pytest-playwrights` A pytest wrapper with fixtures for Playwright to automate web browsers Dec 02, 2021 N/A N/A
:pypi:`pytest-playwright-snapshot` A pytest wrapper for snapshot testing with playwright Aug 19, 2021 N/A N/A
:pypi:`pytest-playwright-visual` A pytest fixture for visual testing with Playwright Apr 28, 2022 N/A N/A
- :pypi:`pytest-plone` Pytest plugin to test Plone addons Jan 05, 2023 3 - Alpha pytest
+ :pypi:`pytest-plone` Pytest plugin to test Plone addons May 15, 2024 3 - Alpha pytest<8.0.0
:pypi:`pytest-plt` Fixtures for quickly making Matplotlib plots in tests Jan 17, 2024 5 - Production/Stable pytest
:pypi:`pytest-plugin-helpers` A plugin to help developing and testing other plugins Nov 23, 2019 4 - Beta pytest (>=3.5.0)
:pypi:`pytest-plus` PyTest Plus Plugin :: extends pytest functionality Mar 26, 2024 5 - Production/Stable pytest>=7.4.2
@@ -1013,6 +1015,7 @@ This list contains 1457 plugins.
:pypi:`pytest-prysk` Pytest plugin for prysk Mar 12, 2024 4 - Beta pytest (>=7.3.2)
:pypi:`pytest-pspec` A rspec format reporter for Python ptest Jun 02, 2020 4 - Beta pytest (>=3.0.0)
:pypi:`pytest-psqlgraph` pytest plugin for testing applications that use psqlgraph Oct 19, 2021 4 - Beta pytest (>=6.0)
+ :pypi:`pytest-pt` pytest plugin to use \*.pt files as tests May 15, 2024 4 - Beta pytest
:pypi:`pytest-ptera` Use ptera probes in tests Mar 01, 2022 N/A pytest (>=6.2.4,<7.0.0)
:pypi:`pytest-pudb` Pytest PuDB debugger integration Oct 25, 2018 3 - Alpha pytest (>=2.0)
:pypi:`pytest-pumpkin-spice` A pytest plugin that makes your test reporting pumpkin-spiced Sep 18, 2022 4 - Beta N/A
@@ -1039,6 +1042,7 @@ This list contains 1457 plugins.
:pypi:`pytest-pytestrail` Pytest plugin for interaction with TestRail Aug 27, 2020 4 - Beta pytest (>=3.8.0)
:pypi:`pytest-pythonhashseed` Pytest plugin to set PYTHONHASHSEED env var. Feb 25, 2024 4 - Beta pytest>=3.0.0
:pypi:`pytest-pythonpath` pytest plugin for adding to the PYTHONPATH from command line or configs. Feb 10, 2022 5 - Production/Stable pytest (<7,>=2.5.2)
+ :pypi:`pytest-python-test-engineer-sort` Sort plugin for Pytest May 13, 2024 N/A pytest>=6.2.0
:pypi:`pytest-pytorch` pytest plugin for a better developer experience when working with the PyTorch test suite May 25, 2021 4 - Beta pytest
:pypi:`pytest-pyvenv` A package for create venv in tests Feb 27, 2024 N/A pytest ; extra == 'test'
:pypi:`pytest-pyvista` Pytest-pyvista package Sep 29, 2023 4 - Beta pytest>=3.5.0
@@ -1066,7 +1070,7 @@ This list contains 1457 plugins.
:pypi:`pytest-randomness` Pytest plugin about random seed management May 30, 2019 3 - Alpha N/A
:pypi:`pytest-random-num` Randomise the order in which pytest tests are run with some control over the randomness Oct 19, 2020 5 - Production/Stable N/A
:pypi:`pytest-random-order` Randomise the order in which pytest tests are run with some control over the randomness Jan 20, 2024 5 - Production/Stable pytest >=3.0.0
- :pypi:`pytest-ranking` A Pytest plugin for automatically prioritizing/ranking tests to speed up failure detection May 10, 2024 4 - Beta pytest>=7.4.3
+ :pypi:`pytest-ranking` A Pytest plugin for automatically prioritizing/ranking tests to speed up failure detection May 12, 2024 4 - Beta pytest>=7.4.3
:pypi:`pytest-readme` Test your README.md file Sep 02, 2022 5 - Production/Stable N/A
:pypi:`pytest-reana` Pytest fixtures for REANA. Mar 14, 2024 3 - Alpha N/A
:pypi:`pytest-recorder` Pytest plugin, meant to facilitate unit tests writing for tools consumming Web APIs. Nov 21, 2023 N/A N/A
@@ -1116,7 +1120,7 @@ This list contains 1457 plugins.
:pypi:`pytest-rerunfailures` pytest plugin to re-run tests to eliminate flaky failures Mar 13, 2024 5 - Production/Stable pytest >=7.2
:pypi:`pytest-rerunfailures-all-logs` pytest plugin to re-run tests to eliminate flaky failures Mar 07, 2022 5 - Production/Stable N/A
:pypi:`pytest-reserial` Pytest fixture for recording and replaying serial port traffic. Feb 08, 2024 4 - Beta pytest
- :pypi:`pytest-resilient-circuits` Resilient Circuits fixtures for PyTest Apr 03, 2024 N/A pytest~=4.6; python_version == "2.7"
+ :pypi:`pytest-resilient-circuits` Resilient Circuits fixtures for PyTest May 17, 2024 N/A pytest~=4.6; python_version == "2.7"
:pypi:`pytest-resource` Load resource fixture plugin to use with pytest Nov 14, 2018 4 - Beta N/A
:pypi:`pytest-resource-path` Provides path for uniform access to test resources in isolated directory May 01, 2021 5 - Production/Stable pytest (>=3.5.0)
:pypi:`pytest-resource-usage` Pytest plugin for reporting running time and peak memory usage Nov 06, 2022 5 - Production/Stable pytest>=7.0.0
@@ -1128,7 +1132,7 @@ This list contains 1457 plugins.
:pypi:`pytest-result-sender` Apr 20, 2023 N/A pytest>=7.3.1
:pypi:`pytest-resume` A Pytest plugin to resuming from the last run test Apr 22, 2023 4 - Beta pytest (>=7.0)
:pypi:`pytest-rethinkdb` A RethinkDB plugin for pytest. Jul 24, 2016 4 - Beta N/A
- :pypi:`pytest-retry` Adds the ability to retry flaky tests in CI environments Feb 04, 2024 N/A pytest >=7.0.0
+ :pypi:`pytest-retry` Adds the ability to retry flaky tests in CI environments May 14, 2024 N/A pytest>=7.0.0
:pypi:`pytest-retry-class` A pytest plugin to rerun entire class on failure Mar 25, 2023 N/A pytest (>=5.3)
:pypi:`pytest-reusable-testcases` Apr 28, 2023 N/A N/A
:pypi:`pytest-reverse` Pytest plugin to reverse test order. Jul 10, 2023 5 - Production/Stable pytest
@@ -1140,7 +1144,7 @@ This list contains 1457 plugins.
:pypi:`pytest-rmsis` Sycronise pytest results to Jira RMsis Aug 10, 2022 N/A pytest (>=5.3.5)
:pypi:`pytest-rng` Fixtures for seeding tests and making randomness reproducible Aug 08, 2019 5 - Production/Stable pytest
:pypi:`pytest-roast` pytest plugin for ROAST configuration override and fixtures Nov 09, 2022 5 - Production/Stable pytest
- :pypi:`pytest_robotframework` a pytest plugin that can run both python and robotframework tests while generating robot reports for them May 03, 2024 N/A pytest<9,>=7
+ :pypi:`pytest_robotframework` a pytest plugin that can run both python and robotframework tests while generating robot reports for them May 18, 2024 N/A pytest<9,>=7
:pypi:`pytest-rocketchat` Pytest to Rocket.Chat reporting plugin Apr 18, 2021 5 - Production/Stable N/A
:pypi:`pytest-rotest` Pytest integration with rotest Sep 08, 2019 N/A pytest (>=3.5.0)
:pypi:`pytest-rpc` Extend py.test for RPC OpenStack testing. Feb 22, 2019 4 - Beta pytest (~=3.6)
@@ -1165,7 +1169,7 @@ This list contains 1457 plugins.
:pypi:`pytest-sanity` Dec 07, 2020 N/A N/A
:pypi:`pytest-sa-pg` May 14, 2019 N/A N/A
:pypi:`pytest_sauce` pytest_sauce provides sane and helpful methods worked out in clearcode to run py.test tests with selenium/saucelabs Jul 14, 2014 3 - Alpha N/A
- :pypi:`pytest-sbase` A complete web automation framework for end-to-end testing. May 03, 2024 5 - Production/Stable N/A
+ :pypi:`pytest-sbase` A complete web automation framework for end-to-end testing. May 16, 2024 5 - Production/Stable N/A
:pypi:`pytest-scenario` pytest plugin for test scenarios Feb 06, 2017 3 - Alpha N/A
:pypi:`pytest-schedule` The job of test scheduling for humans. Jan 07, 2023 5 - Production/Stable N/A
:pypi:`pytest-schema` 👍 Validate return values against a schema-like object in testing Feb 16, 2024 5 - Production/Stable pytest >=3.5.0
@@ -1174,7 +1178,7 @@ This list contains 1457 plugins.
:pypi:`pytest-select` A pytest plugin which allows to (de-)select tests from a file. Jan 18, 2019 3 - Alpha pytest (>=3.0)
:pypi:`pytest-selenium` pytest plugin for Selenium Feb 01, 2024 5 - Production/Stable pytest>=6.0.0
:pypi:`pytest-selenium-auto` pytest plugin to automatically capture screenshots upon selenium webdriver events Nov 07, 2023 N/A pytest >= 7.0.0
- :pypi:`pytest-seleniumbase` A complete web automation framework for end-to-end testing. May 03, 2024 5 - Production/Stable N/A
+ :pypi:`pytest-seleniumbase` A complete web automation framework for end-to-end testing. May 16, 2024 5 - Production/Stable N/A
:pypi:`pytest-selenium-enhancer` pytest plugin for Selenium Apr 29, 2022 5 - Production/Stable N/A
:pypi:`pytest-selenium-pdiff` A pytest package implementing perceptualdiff for Selenium tests. Apr 06, 2017 2 - Pre-Alpha N/A
:pypi:`pytest-selfie` A pytest plugin for selfie snapshot testing. Apr 05, 2024 N/A pytest<9.0.0,>=8.0.0
@@ -1184,6 +1188,7 @@ This list contains 1457 plugins.
:pypi:`pytest-server-fixtures` Extensible server fixures for py.test Dec 19, 2023 5 - Production/Stable pytest
:pypi:`pytest-serverless` Automatically mocks resources from serverless.yml in pytest using moto. May 09, 2022 4 - Beta N/A
:pypi:`pytest-servers` pytest servers May 09, 2024 3 - Alpha pytest>=6.2
+ :pypi:`pytest-service` May 11, 2024 5 - Production/Stable pytest>=6.0.0
:pypi:`pytest-services` Services plugin for pytest testing framework Oct 30, 2020 6 - Mature N/A
:pypi:`pytest-session2file` pytest-session2file (aka: pytest-session_to_file for v0.1.0 - v0.1.2) is a py.test plugin for capturing and saving to file the stdout of py.test. Jan 26, 2021 3 - Alpha pytest
:pypi:`pytest-session-fixture-globalize` py.test plugin to make session fixtures behave as if written in conftest, even if it is written in some modules May 15, 2018 4 - Beta N/A
@@ -1250,7 +1255,7 @@ This list contains 1457 plugins.
:pypi:`pytest-splitio` Split.io SDK integration for e2e tests Sep 22, 2020 N/A pytest (<7,>=5.0)
:pypi:`pytest-split-tests` A Pytest plugin for running a subset of your tests by splitting them in to equally sized groups. Forked from Mark Adams' original project pytest-test-groups. Jul 30, 2021 5 - Production/Stable pytest (>=2.5)
:pypi:`pytest-split-tests-tresorit` Feb 22, 2021 1 - Planning N/A
- :pypi:`pytest-splunk-addon` A Dynamic test tool for Splunk Apps and Add-ons Apr 19, 2024 N/A pytest (>5.4.0,<8)
+ :pypi:`pytest-splunk-addon` A Dynamic test tool for Splunk Apps and Add-ons May 16, 2024 N/A pytest<8,>5.4.0
:pypi:`pytest-splunk-addon-ui-smartx` Library to support testing Splunk Add-on UX May 10, 2024 N/A N/A
:pypi:`pytest-splunk-env` pytest fixtures for interaction with Splunk Enterprise and Splunk Cloud Oct 22, 2020 N/A pytest (>=6.1.1,<7.0.0)
:pypi:`pytest-sqitch` sqitch for pytest Apr 06, 2020 4 - Beta N/A
@@ -1423,7 +1428,6 @@ This list contains 1457 plugins.
:pypi:`pytest-vcrpandas` Test from HTTP interactions to dataframe processed. Jan 12, 2019 4 - Beta pytest
:pypi:`pytest-vcs` Sep 22, 2022 4 - Beta N/A
:pypi:`pytest-venv` py.test fixture for creating a virtual environment Nov 23, 2023 4 - Beta pytest
- :pypi:`pytest-ver` Pytest module with Verification Protocol, Verification Report and Trace Matrix Feb 07, 2024 4 - Beta pytest
:pypi:`pytest-verbose-parametrize` More descriptive output for parametrized py.test tests May 28, 2019 5 - Production/Stable pytest
:pypi:`pytest-vimqf` A simple pytest plugin that will shrink pytest output when specified, to fit vim quickfix window. Feb 08, 2021 4 - Beta pytest (>=6.2.2,<7.0.0)
:pypi:`pytest-virtualenv` Virtualenv fixture for py.test May 28, 2019 5 - Production/Stable pytest
@@ -1463,7 +1467,7 @@ This list contains 1457 plugins.
:pypi:`pytest-xfiles` Pytest fixtures providing data read from function, module or package related (x)files. Feb 27, 2018 N/A N/A
:pypi:`pytest-xiuyu` This is a pytest plugin Jul 25, 2023 5 - Production/Stable N/A
:pypi:`pytest-xlog` Extended logging for test and decorators May 31, 2020 4 - Beta N/A
- :pypi:`pytest-xlsx` pytest plugin for generating test cases by xlsx(excel) Apr 23, 2024 N/A N/A
+ :pypi:`pytest-xlsx` pytest plugin for generating test cases by xlsx(excel) Apr 23, 2024 N/A pytest~=7.0
:pypi:`pytest-xpara` An extended parametrizing plugin of pytest. Oct 30, 2017 3 - Alpha pytest
:pypi:`pytest-xprocess` A pytest plugin for managing processes across test runs. Mar 31, 2024 4 - Beta pytest>=2.8
:pypi:`pytest-xray` May 30, 2019 3 - Alpha N/A
@@ -1720,6 +1724,13 @@ This list contains 1457 plugins.
pytest plugin to test case doc string dls instructions
+ :pypi:`pytest-allure-id2history`
+ *last release*: May 14, 2024,
+ *status*: 4 - Beta,
+ *requires*: pytest>=6.2.0
+
+ Overwrite allure history id with testcase full name and testcase id if testcase has id, exclude parameters.
+
:pypi:`pytest-allure-intersection`
*last release*: Oct 27, 2022,
*status*: N/A,
@@ -2141,7 +2152,7 @@ This list contains 1457 plugins.
pytest plugin for testing AWS resource configurations
:pypi:`pytest-aws-apigateway`
- *last release*: May 10, 2024,
+ *last release*: May 18, 2024,
*status*: 4 - Beta,
*requires*: pytest
@@ -2288,7 +2299,7 @@ This list contains 1457 plugins.
Pytest plugin to run your tests with beartype checking enabled.
:pypi:`pytest-bec-e2e`
- *last release*: May 08, 2024,
+ *last release*: May 17, 2024,
*status*: 3 - Alpha,
*requires*: pytest
@@ -2882,6 +2893,13 @@ This list contains 1457 plugins.
Easy quality control for CLDF datasets using pytest
+ :pypi:`pytest-cleanslate`
+ *last release*: May 15, 2024,
+ *status*: N/A,
+ *requires*: pytest
+
+ Collects and executes pytest tests separately
+
:pypi:`pytest_cleanup`
*last release*: Jan 28, 2020,
*status*: N/A,
@@ -2946,7 +2964,7 @@ This list contains 1457 plugins.
Distribute tests to cloud machines without fuss
:pypi:`pytest-cmake`
- *last release*: May 06, 2024,
+ *last release*: May 12, 2024,
*status*: N/A,
*requires*: pytest<9,>=4
@@ -3758,9 +3776,9 @@ This list contains 1457 plugins.
Disable plugins per test
:pypi:`pytest-discord`
- *last release*: Oct 18, 2023,
+ *last release*: May 11, 2024,
*status*: 4 - Beta,
- *requires*: pytest !=6.0.0,<8,>=3.3.2
+ *requires*: pytest!=6.0.0,<9,>=3.3.2
A pytest plugin to notify test results to a Discord channel.
@@ -5130,9 +5148,9 @@ This list contains 1457 plugins.
:pypi:`pytest-fluent`
- *last release*: Jun 26, 2023,
+ *last release*: May 15, 2024,
*status*: 4 - Beta,
- *requires*: pytest (>=7.0.0)
+ *requires*: pytest>=7.0.0
A pytest plugin in order to provide logs via fluentd
@@ -5606,7 +5624,7 @@ This list contains 1457 plugins.
Hide captured output
:pypi:`pytest-himark`
- *last release*: May 10, 2024,
+ *last release*: May 15, 2024,
*status*: 4 - Beta,
*requires*: pytest>=6.2.0
@@ -5648,7 +5666,7 @@ This list contains 1457 plugins.
A pytest plugin for use with homeassistant custom components.
:pypi:`pytest-homeassistant-custom-component`
- *last release*: May 11, 2024,
+ *last release*: May 18, 2024,
*status*: 3 - Alpha,
*requires*: pytest==8.1.1
@@ -6215,9 +6233,9 @@ This list contains 1457 plugins.
py.test JIRA integration plugin, using markers
:pypi:`pytest-jira-xfail`
- *last release*: Jun 19, 2023,
+ *last release*: May 16, 2024,
*status*: N/A,
- *requires*: pytest (>=7.2.0)
+ *requires*: pytest>=7.2.0
Plugin skips (xfail) tests if unresolved Jira issue(s) linked
@@ -6383,7 +6401,7 @@ This list contains 1457 plugins.
Run Konira DSL tests with py.test
:pypi:`pytest-kookit`
- *last release*: May 06, 2024,
+ *last release*: May 16, 2024,
*status*: N/A,
*requires*: N/A
@@ -6607,7 +6625,7 @@ This list contains 1457 plugins.
Generate local badges (shields) reporting your test suite status.
:pypi:`pytest-localftpserver`
- *last release*: Oct 14, 2023,
+ *last release*: May 17, 2024,
*status*: 5 - Production/Stable,
*requires*: pytest
@@ -6859,7 +6877,7 @@ This list contains 1457 plugins.
Plugin for generating Markdown reports for pytest results
:pypi:`pytest-md-report`
- *last release*: May 03, 2024,
+ *last release*: May 18, 2024,
*status*: 4 - Beta,
*requires*: pytest!=6.0.0,<9,>=3.3.2
@@ -7384,9 +7402,9 @@ This list contains 1457 plugins.
pytest ngs fixtures
:pypi:`pytest-nhsd-apim`
- *last release*: Feb 16, 2024,
+ *last release*: May 17, 2024,
*status*: N/A,
- *requires*: pytest (>=6.2.5,<7.0.0)
+ *requires*: pytest<9.0.0,>=8.2.0
Pytest plugin accessing NHSDigital's APIM proxies
@@ -8084,9 +8102,9 @@ This list contains 1457 plugins.
A pytest fixture for visual testing with Playwright
:pypi:`pytest-plone`
- *last release*: Jan 05, 2023,
+ *last release*: May 15, 2024,
*status*: 3 - Alpha,
- *requires*: pytest
+ *requires*: pytest<8.0.0
Pytest plugin to test Plone addons
@@ -8349,6 +8367,13 @@ This list contains 1457 plugins.
pytest plugin for testing applications that use psqlgraph
+ :pypi:`pytest-pt`
+ *last release*: May 15, 2024,
+ *status*: 4 - Beta,
+ *requires*: pytest
+
+ pytest plugin to use \*.pt files as tests
+
:pypi:`pytest-ptera`
*last release*: Mar 01, 2022,
*status*: N/A,
@@ -8531,6 +8556,13 @@ This list contains 1457 plugins.
pytest plugin for adding to the PYTHONPATH from command line or configs.
+ :pypi:`pytest-python-test-engineer-sort`
+ *last release*: May 13, 2024,
+ *status*: N/A,
+ *requires*: pytest>=6.2.0
+
+ Sort plugin for Pytest
+
:pypi:`pytest-pytorch`
*last release*: May 25, 2021,
*status*: 4 - Beta,
@@ -8721,7 +8753,7 @@ This list contains 1457 plugins.
Randomise the order in which pytest tests are run with some control over the randomness
:pypi:`pytest-ranking`
- *last release*: May 10, 2024,
+ *last release*: May 12, 2024,
*status*: 4 - Beta,
*requires*: pytest>=7.4.3
@@ -9071,7 +9103,7 @@ This list contains 1457 plugins.
Pytest fixture for recording and replaying serial port traffic.
:pypi:`pytest-resilient-circuits`
- *last release*: Apr 03, 2024,
+ *last release*: May 17, 2024,
*status*: N/A,
*requires*: pytest~=4.6; python_version == "2.7"
@@ -9155,9 +9187,9 @@ This list contains 1457 plugins.
A RethinkDB plugin for pytest.
:pypi:`pytest-retry`
- *last release*: Feb 04, 2024,
+ *last release*: May 14, 2024,
*status*: N/A,
- *requires*: pytest >=7.0.0
+ *requires*: pytest>=7.0.0
Adds the ability to retry flaky tests in CI environments
@@ -9239,7 +9271,7 @@ This list contains 1457 plugins.
pytest plugin for ROAST configuration override and fixtures
:pypi:`pytest_robotframework`
- *last release*: May 03, 2024,
+ *last release*: May 18, 2024,
*status*: N/A,
*requires*: pytest<9,>=7
@@ -9414,7 +9446,7 @@ This list contains 1457 plugins.
pytest_sauce provides sane and helpful methods worked out in clearcode to run py.test tests with selenium/saucelabs
:pypi:`pytest-sbase`
- *last release*: May 03, 2024,
+ *last release*: May 16, 2024,
*status*: 5 - Production/Stable,
*requires*: N/A
@@ -9477,7 +9509,7 @@ This list contains 1457 plugins.
pytest plugin to automatically capture screenshots upon selenium webdriver events
:pypi:`pytest-seleniumbase`
- *last release*: May 03, 2024,
+ *last release*: May 16, 2024,
*status*: 5 - Production/Stable,
*requires*: N/A
@@ -9546,6 +9578,13 @@ This list contains 1457 plugins.
pytest servers
+ :pypi:`pytest-service`
+ *last release*: May 11, 2024,
+ *status*: 5 - Production/Stable,
+ *requires*: pytest>=6.0.0
+
+
+
:pypi:`pytest-services`
*last release*: Oct 30, 2020,
*status*: 6 - Mature,
@@ -10009,9 +10048,9 @@ This list contains 1457 plugins.
:pypi:`pytest-splunk-addon`
- *last release*: Apr 19, 2024,
+ *last release*: May 16, 2024,
*status*: N/A,
- *requires*: pytest (>5.4.0,<8)
+ *requires*: pytest<8,>5.4.0
A Dynamic test tool for Splunk Apps and Add-ons
@@ -11219,13 +11258,6 @@ This list contains 1457 plugins.
py.test fixture for creating a virtual environment
- :pypi:`pytest-ver`
- *last release*: Feb 07, 2024,
- *status*: 4 - Beta,
- *requires*: pytest
-
- Pytest module with Verification Protocol, Verification Report and Trace Matrix
-
:pypi:`pytest-verbose-parametrize`
*last release*: May 28, 2019,
*status*: 5 - Production/Stable,
@@ -11502,7 +11534,7 @@ This list contains 1457 plugins.
:pypi:`pytest-xlsx`
*last release*: Apr 23, 2024,
*status*: N/A,
- *requires*: N/A
+ *requires*: pytest~=7.0
pytest plugin for generating test cases by xlsx(excel)
diff --git a/pyproject.toml b/pyproject.toml
index 2be02ee7e..b85f39d85 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -31,6 +31,7 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Testing",
"Topic :: Utilities",
diff --git a/src/_pytest/_code/code.py b/src/_pytest/_code/code.py
index b80d53ca5..cfa226bb7 100644
--- a/src/_pytest/_code/code.py
+++ b/src/_pytest/_code/code.py
@@ -424,15 +424,14 @@ class Traceback(List[TracebackEntry]):
# which generates code objects that have hash/value equality
# XXX needs a test
key = entry.frame.code.path, id(entry.frame.code.raw), entry.lineno
- # print "checking for recursion at", key
values = cache.setdefault(key, [])
+ # Since Python 3.13 f_locals is a proxy, freeze it.
+ loc = dict(entry.frame.f_locals)
if values:
- f = entry.frame
- loc = f.f_locals
for otherloc in values:
if otherloc == loc:
return i
- values.append(entry.frame.f_locals)
+ values.append(loc)
return None
diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py
index 928c4f5e3..b29a254f5 100644
--- a/src/_pytest/assertion/rewrite.py
+++ b/src/_pytest/assertion/rewrite.py
@@ -835,7 +835,7 @@ class AssertionRewriter(ast.NodeVisitor):
current = self.stack.pop()
if self.stack:
self.explanation_specifiers = self.stack[-1]
- keys = [ast.Constant(key) for key in current.keys()]
+ keys: List[Optional[ast.expr]] = [ast.Constant(key) for key in current.keys()]
format_dict = ast.Dict(keys, list(current.values()))
form = ast.BinOp(expl_expr, ast.Mod(), format_dict)
name = "@py_format" + str(next(self.variable_counter))
@@ -926,13 +926,13 @@ class AssertionRewriter(ast.NodeVisitor):
[*self.expl_stmts, hook_call_pass],
[],
)
- statements_pass = [hook_impl_test]
+ statements_pass: List[ast.stmt] = [hook_impl_test]
# Test for assertion condition
main_test = ast.If(negation, statements_fail, statements_pass)
self.statements.append(main_test)
if self.format_variables:
- variables = [
+ variables: List[ast.expr] = [
ast.Name(name, ast.Store()) for name in self.format_variables
]
clear_format = ast.Assign(variables, ast.Constant(None))
@@ -1114,11 +1114,11 @@ class AssertionRewriter(ast.NodeVisitor):
if isinstance(comp.left, (ast.Compare, ast.BoolOp)):
left_expl = f"({left_expl})"
res_variables = [self.variable() for i in range(len(comp.ops))]
- load_names = [ast.Name(v, ast.Load()) for v in res_variables]
+ load_names: List[ast.expr] = [ast.Name(v, ast.Load()) for v in res_variables]
store_names = [ast.Name(v, ast.Store()) for v in res_variables]
it = zip(range(len(comp.ops)), comp.ops, comp.comparators)
- expls = []
- syms = []
+ expls: List[ast.expr] = []
+ syms: List[ast.expr] = []
results = [left_res]
for i, op, next_operand in it:
if (
diff --git a/src/_pytest/pytester.py b/src/_pytest/pytester.py
index 31c6de781..f9ab007a4 100644
--- a/src/_pytest/pytester.py
+++ b/src/_pytest/pytester.py
@@ -289,7 +289,8 @@ class HookRecorder:
__tracebackhide__ = True
i = 0
entries = list(entries)
- backlocals = sys._getframe(1).f_locals
+ # Since Python 3.13, f_locals is not a dict, but eval requires a dict.
+ backlocals = dict(sys._getframe(1).f_locals)
while entries:
name, check = entries.pop(0)
for ind, call in enumerate(self.calls[i:]):
@@ -760,6 +761,9 @@ class Pytester:
) -> Path:
items = list(files.items())
+ if ext is None:
+ raise TypeError("ext must not be None")
+
if ext and not ext.startswith("."):
raise ValueError(
f"pytester.makefile expects a file extension, try .{ext} instead of {ext}"
diff --git a/testing/code/test_excinfo.py b/testing/code/test_excinfo.py
index 86e30dc48..b54745129 100644
--- a/testing/code/test_excinfo.py
+++ b/testing/code/test_excinfo.py
@@ -1,6 +1,7 @@
# mypy: allow-untyped-defs
from __future__ import annotations
+import fnmatch
import importlib
import io
import operator
@@ -237,7 +238,7 @@ class TestTraceback_f_g_h:
n += 1
f(n)
- excinfo = pytest.raises(RuntimeError, f, 8)
+ excinfo = pytest.raises(RecursionError, f, 8)
traceback = excinfo.traceback
recindex = traceback.recursionindex()
assert recindex == 3
@@ -373,7 +374,10 @@ def test_excinfo_no_sourcecode():
except ValueError:
excinfo = _pytest._code.ExceptionInfo.from_current()
s = str(excinfo.traceback[-1])
- assert s == " File '':1 in \n ???\n"
+ # TODO: Since Python 3.13b1 under pytest-xdist, the * is `import
+ # sys;exec(eval(sys.stdin.readline()))` (execnet bootstrap code)
+ # instead of `???` like before. Is this OK?
+ fnmatch.fnmatch(s, " File '':1 in \n *\n")
def test_excinfo_no_python_sourcecode(tmp_path: Path) -> None:
diff --git a/testing/code/test_source.py b/testing/code/test_source.py
index 2fa852057..a00259976 100644
--- a/testing/code/test_source.py
+++ b/testing/code/test_source.py
@@ -370,7 +370,11 @@ def test_getfslineno() -> None:
pass
B.__name__ = B.__qualname__ = "B2"
- assert getfslineno(B)[1] == -1
+ # Since Python 3.13 this started working.
+ if sys.version_info >= (3, 13):
+ assert getfslineno(B)[1] != -1
+ else:
+ assert getfslineno(B)[1] == -1
def test_code_of_object_instance_with_call() -> None:
diff --git a/testing/plugins_integration/requirements.txt b/testing/plugins_integration/requirements.txt
index d4d0fc633..458cc2f97 100644
--- a/testing/plugins_integration/requirements.txt
+++ b/testing/plugins_integration/requirements.txt
@@ -1,6 +1,6 @@
anyio[curio,trio]==4.3.0
django==5.0.6
-pytest-asyncio==0.23.6
+pytest-asyncio==0.23.7
pytest-bdd==7.1.2
pytest-cov==5.0.0
pytest-django==4.8.0
diff --git a/testing/test_assertrewrite.py b/testing/test_assertrewrite.py
index 82c7055b9..8db9dbbe5 100644
--- a/testing/test_assertrewrite.py
+++ b/testing/test_assertrewrite.py
@@ -130,6 +130,7 @@ class TestAssertionRewrite:
if isinstance(node, ast.Import):
continue
for n in [node, *ast.iter_child_nodes(node)]:
+ assert isinstance(n, (ast.stmt, ast.expr))
assert n.lineno == 3
assert n.col_offset == 0
assert n.end_lineno == 6
diff --git a/testing/test_cacheprovider.py b/testing/test_cacheprovider.py
index d7815f77b..8728ae84f 100644
--- a/testing/test_cacheprovider.py
+++ b/testing/test_cacheprovider.py
@@ -194,7 +194,7 @@ class TestNewAPI:
assert pytester.path.joinpath("custom_cache_dir").is_dir()
-@pytest.mark.parametrize("env", ((), ("TOX_ENV_DIR", "/tox_env_dir")))
+@pytest.mark.parametrize("env", ((), ("TOX_ENV_DIR", "mydir/tox-env")))
def test_cache_reportheader(
env: Sequence[str], pytester: Pytester, monkeypatch: MonkeyPatch
) -> None:
diff --git a/testing/test_doctest.py b/testing/test_doctest.py
index d73112179..9b33d641a 100644
--- a/testing/test_doctest.py
+++ b/testing/test_doctest.py
@@ -224,11 +224,7 @@ class TestDoctests:
"Traceback (most recent call last):",
' File "*/doctest.py", line *, in __run',
" *",
- *(
- (" *^^^^*",)
- if (3, 11, 0, "beta", 4) > sys.version_info >= (3, 11)
- else ()
- ),
+ *((" *^^^^*", " *", " *") if sys.version_info >= (3, 13) else ()),
' File "", line 1, in ',
"ZeroDivisionError: division by zero",
"*/test_doctest_unexpected_exception.txt:2: UnexpectedException",
@@ -385,7 +381,7 @@ class TestDoctests:
"*= FAILURES =*",
"*_ [[]doctest[]] test_doctest_linedata_on_property.Sample.some_property _*",
"004 ",
- "005 >>> Sample().some_property",
+ "005 *>>> Sample().some_property",
"Expected:",
" 'another thing'",
"Got:",
diff --git a/testing/test_main.py b/testing/test_main.py
index 345aa1e62..6294f66b3 100644
--- a/testing/test_main.py
+++ b/testing/test_main.py
@@ -3,7 +3,6 @@ import argparse
import os
from pathlib import Path
import re
-import sys
from typing import Optional
from _pytest.config import ExitCode
@@ -45,32 +44,18 @@ def test_wrap_session_notify_exception(ret_exc, pytester: Pytester) -> None:
assert result.ret == ExitCode.INTERNAL_ERROR
assert result.stdout.lines[0] == "INTERNALERROR> Traceback (most recent call last):"
- end_lines = (
- result.stdout.lines[-4:]
- if (3, 11, 0, "beta", 4) > sys.version_info >= (3, 11)
- else result.stdout.lines[-3:]
- )
+ end_lines = result.stdout.lines[-3:]
if exc == SystemExit:
assert end_lines == [
f'INTERNALERROR> File "{c1}", line 4, in pytest_sessionstart',
'INTERNALERROR> raise SystemExit("boom")',
- *(
- ("INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^",)
- if (3, 11, 0, "beta", 4) > sys.version_info >= (3, 11)
- else ()
- ),
"INTERNALERROR> SystemExit: boom",
]
else:
assert end_lines == [
f'INTERNALERROR> File "{c1}", line 4, in pytest_sessionstart',
'INTERNALERROR> raise ValueError("boom")',
- *(
- ("INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^",)
- if (3, 11, 0, "beta", 4) > sys.version_info >= (3, 11)
- else ()
- ),
"INTERNALERROR> ValueError: boom",
]
if returncode is False:
diff --git a/tox.ini b/tox.ini
index 4e1ff1119..0a3f0acf5 100644
--- a/tox.ini
+++ b/tox.ini
@@ -9,6 +9,7 @@ envlist =
py310
py311
py312
+ py313
pypy3
py38-{pexpect,xdist,unittestextras,numpy,pluggymain,pylib}
doctesting