pytest 8.3.2__tar.gz → 8.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/deploy.yml +3 -1
- {pytest-8.3.2 → pytest-8.3.3}/.pre-commit-config.yaml +13 -5
- {pytest-8.3.2 → pytest-8.3.3}/AUTHORS +4 -0
- {pytest-8.3.2 → pytest-8.3.3}/CONTRIBUTING.rst +55 -2
- {pytest-8.3.2/src/pytest.egg-info → pytest-8.3.3}/PKG-INFO +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/index.rst +1 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.0.rst +2 -2
- pytest-8.3.3/doc/en/announce/release-8.3.3.rst +31 -0
- pytest-8.3.3/doc/en/broken-dep-constraints.txt +6 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/builtin.rst +9 -9
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/changelog.rst +50 -4
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/contact.rst +3 -2
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/deprecations.rst +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/parametrize.rst +4 -4
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/pythoncollection.rst +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/simple.rst +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/fixtures.rst +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/funcarg_compare.rst +3 -3
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/getting-started.rst +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/fixtures.rst +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/unittest.rst +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/index.rst +0 -1
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/reference.rst +3 -3
- pytest-8.3.3/doc/en/requirements.txt +10 -0
- {pytest-8.3.2 → pytest-8.3.3}/pyproject.toml +5 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/release.py +15 -4
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/code.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/pprint.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_version.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/rewrite.py +11 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/cacheprovider.py +3 -5
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/capture.py +12 -11
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/__init__.py +8 -4
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/debugging.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/doctest.py +3 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/faulthandler.py +1 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/fixtures.py +16 -6
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/hookspec.py +11 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/logging.py +11 -13
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/main.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/monkeypatch.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/nodes.py +3 -3
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pathlib.py +3 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pytester.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python.py +6 -6
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/recwarn.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/runner.py +3 -3
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/skipping.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/stepwise.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/terminal.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/threadexception.py +4 -4
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/tmpdir.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/unittest.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/unraisableexception.py +4 -4
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/warnings.py +4 -4
- {pytest-8.3.2 → pytest-8.3.3/src/pytest.egg-info}/PKG-INFO +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/SOURCES.txt +2 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/acceptance_test.py +7 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/conftest.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_terminalwriter.py +1 -3
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/collect.py +37 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/fixtures.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_assertion.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_assertrewrite.py +29 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_cacheprovider.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_capture.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_config.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_conftest.py +1 -3
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_monkeypatch.py +2 -2
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_pathlib.py +37 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_runner.py +1 -1
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_terminal.py +35 -0
- pytest-8.3.2/doc/en/requirements.txt +0 -13
- {pytest-8.3.2 → pytest-8.3.3}/.coveragerc +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.git-blame-ignore-revs +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.gitattributes +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/FUNDING.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/1_bug_report.md +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/2_feature_request.md +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/chronographer.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/config.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/dependabot.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/labels.toml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/patchback.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/prepare-release-pr.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/stale.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/test.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/update-plugin-list.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/.readthedocs.yaml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/CHANGELOG.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/CITATION +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/CODE_OF_CONDUCT.md +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/LICENSE +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/OPENCOLLECTIVE.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/README.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/RELEASING.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/TIDELIFT.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/bench.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/bench_argcomplete.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/empty.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/manyparam.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/skip.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/unit_test.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/bench/xunit.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/changelog/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/changelog/README.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/changelog/_template.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/codecov.yml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/Makefile +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/_static/pytest-custom.css +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/_static/pytest1.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/_templates/links.html +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/adopt.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.6.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.7.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.6.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.7.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.10.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.10.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.5.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.5.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.3.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.5.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.6.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.7.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.8.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.9.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.0rc1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.5.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.0rc1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.3.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.4.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0rc1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0rc2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.0.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.1.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.2.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/sprint2016.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/backwards-compatibility.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/conf.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/contents.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/contributing.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/development_guide.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/failure_demo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/global_testmodule_config/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/global_testmodule_config/test_hello_world.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/test_failures.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/test_setup_flow_example.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/attic.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/manifest.json +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_first.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_second.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_third.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/fixture_availability.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/fixture_availability_plugins.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_flat.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies_flat.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies_unclear.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_scope.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_scope.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_request_different_scope.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_request_different_scope.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/index.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/markers.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/multipython.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/test_simple.yaml +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/pythoncollection.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/reportingdemo.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/special.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/xfail_demo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/anatomy.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/ci.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/flaky.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/goodpractices.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/index.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/pythonpath.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/funcargs.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/historical-notes.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/history.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/assert.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/bash-completion.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/cache.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/capture-stdout-stderr.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/capture-warnings.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/doctest.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/existingtestsuite.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/failures.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/index.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/logging.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/mark.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/monkeypatch.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/output.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/parametrize.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/plugins.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/skipping.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/tmp_path.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/usage.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/writing_hook_functions.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/writing_plugins.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/xunit_setup.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/cramer2.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/favicon.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/freiburg2.jpg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/gaynor3.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/keleshev.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pullrequest.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pylib.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pytest_logo_curves.svg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/theuni.png +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/license.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/naming20.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/proposals/parametrize_with_fixtures.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/recwarn.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/customize.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/exit-codes.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/fixtures.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/index.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/plugin_list.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/sponsor.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/talks.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/tidelift.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/doc/en/yieldfixture.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/extra/get_issues.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/generate-gh-release-notes.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/prepare-release-pr.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/release.major.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/release.minor.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/release.patch.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/release.pre.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/scripts/update-plugin-list.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/setup.cfg +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_argcomplete.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/source.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/saferepr.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/terminalwriter.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/wcwidth.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/error.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/path.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/truncate.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/util.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/compat.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/argparsing.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/compat.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/exceptions.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/findpaths.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/deprecated.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/freeze_support.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/helpconfig.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/junitxml.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/legacypath.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/expression.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/structures.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/outcomes.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pastebin.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/py.typed +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pytester_assertions.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python_api.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python_path.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/reports.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/scope.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/setuponly.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/setupplan.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/stash.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/timing.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/warning_types.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/py.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest/__main__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest/py.typed +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/dependency_links.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/entry_points.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/requires.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/top_level.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/_py/test_local.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_code.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_excinfo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_source.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/deprecated_test.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/README.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/acceptance/fixture_mock_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/tests/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/tests/test_foo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/test_foo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/conftest_usageerror/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/conftest_usageerror/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/manifest.json +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_first.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_second.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_third.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_with_custom_eq.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_initvar.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/doctest/main_py/__main__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/doctest/main_py/test_normal_module.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/foo/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/foo/test_foo.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/test_fixture_named_request.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/test_hello.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue_519.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/junit-10.xsd +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/__init__.pyi +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/conftest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/generate_folders.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/template_test.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/tmpdir/tmp_path_fixture.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_parametrized_fixture_error_message.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip_class.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip_module.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_asyncio.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_asynctest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_plain_async.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/examples/test_issue519.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/create_executable.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/runtests_script.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tests/test_doctest.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tests/test_trivial.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tox_run.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_pprint.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_saferepr.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_wcwidth.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_fixture.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_formatter.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_reporting.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/.gitignore +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/README.rst +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/bdd_wallet.feature +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/bdd_wallet.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/django_settings.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest.ini +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_anyio_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_asyncio_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_mock_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_rerunfailures_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_trio_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_twisted_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/requirements.txt +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/simple_integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/approx.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/integration.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/metafunc.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/raises.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/python/show_fixtures_per_test.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_argcomplete.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_collection.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_compat.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_debugging.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_doctest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_entry_points.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_error_diffs.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_faulthandler.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_findpaths.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_helpconfig.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_junitxml.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_legacypath.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_link_resolve.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_main.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_mark.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_mark_expression.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_meta.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_nodes.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_parseopt.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_pastebin.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_pluginmanager.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_pytester.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_python_path.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_recwarn.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_reports.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_runner_xunit.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_scope.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_session.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_setuponly.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_setupplan.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_skipping.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_stash.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_stepwise.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_threadexception.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_tmpdir.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_unittest.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_unraisableexception.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_warning_types.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/test_warnings.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/testing/typing_checks.py +0 -0
- {pytest-8.3.2 → pytest-8.3.3}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: "v0.
|
|
3
|
+
rev: "v0.6.2"
|
|
4
4
|
hooks:
|
|
5
5
|
- id: ruff
|
|
6
6
|
args: ["--fix"]
|
|
@@ -16,35 +16,43 @@ repos:
|
|
|
16
16
|
hooks:
|
|
17
17
|
- id: blacken-docs
|
|
18
18
|
additional_dependencies: [black==24.1.1]
|
|
19
|
+
- repo: https://github.com/codespell-project/codespell
|
|
20
|
+
rev: v2.3.0
|
|
21
|
+
hooks:
|
|
22
|
+
- id: codespell
|
|
23
|
+
args: ["--toml=pyproject.toml"]
|
|
24
|
+
additional_dependencies:
|
|
25
|
+
- tomli
|
|
19
26
|
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
20
27
|
rev: v1.10.0
|
|
21
28
|
hooks:
|
|
22
29
|
- id: python-use-type-annotations
|
|
23
30
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
24
|
-
rev: v1.
|
|
31
|
+
rev: v1.11.2
|
|
25
32
|
hooks:
|
|
26
33
|
- id: mypy
|
|
27
34
|
files: ^(src/|testing/|scripts/)
|
|
28
35
|
args: []
|
|
36
|
+
language_version: "3.8"
|
|
29
37
|
additional_dependencies:
|
|
30
38
|
- iniconfig>=1.1.0
|
|
31
39
|
- attrs>=19.2.0
|
|
32
40
|
- pluggy>=1.5.0
|
|
33
41
|
- packaging
|
|
34
42
|
- tomli
|
|
35
|
-
- types-
|
|
43
|
+
- types-setuptools
|
|
36
44
|
- types-tabulate
|
|
37
45
|
# for mypy running on python>=3.11 since exceptiongroup is only a dependency
|
|
38
46
|
# on <3.11
|
|
39
47
|
- exceptiongroup>=1.0.0rc8
|
|
40
48
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
41
|
-
rev: "2.1
|
|
49
|
+
rev: "2.2.1"
|
|
42
50
|
hooks:
|
|
43
51
|
- id: pyproject-fmt
|
|
44
52
|
# https://pyproject-fmt.readthedocs.io/en/latest/#calculating-max-supported-python-version
|
|
45
53
|
additional_dependencies: ["tox>=4.9"]
|
|
46
54
|
- repo: https://github.com/asottile/pyupgrade
|
|
47
|
-
rev: v3.
|
|
55
|
+
rev: v3.17.0
|
|
48
56
|
hooks:
|
|
49
57
|
- id: pyupgrade
|
|
50
58
|
stages: [manual]
|
|
@@ -85,6 +85,7 @@ Chris NeJame
|
|
|
85
85
|
Chris Rose
|
|
86
86
|
Chris Wheeler
|
|
87
87
|
Christian Boelsen
|
|
88
|
+
Christian Clauss
|
|
88
89
|
Christian Fetzer
|
|
89
90
|
Christian Neumüller
|
|
90
91
|
Christian Theunert
|
|
@@ -299,6 +300,7 @@ mrbean-bremen
|
|
|
299
300
|
Nathan Goldbaum
|
|
300
301
|
Nathaniel Compton
|
|
301
302
|
Nathaniel Waisbrot
|
|
303
|
+
Nauman Ahmed
|
|
302
304
|
Ned Batchelder
|
|
303
305
|
Neil Martin
|
|
304
306
|
Neven Mundar
|
|
@@ -351,6 +353,7 @@ Rafal Semik
|
|
|
351
353
|
Raquel Alegre
|
|
352
354
|
Ravi Chandra
|
|
353
355
|
Reagan Lee
|
|
356
|
+
Rob Arrow
|
|
354
357
|
Robert Holt
|
|
355
358
|
Roberto Aldera
|
|
356
359
|
Roberto Polli
|
|
@@ -411,6 +414,7 @@ Ted Xiao
|
|
|
411
414
|
Terje Runde
|
|
412
415
|
Thomas Grainger
|
|
413
416
|
Thomas Hisch
|
|
417
|
+
Tianyu Dongfang
|
|
414
418
|
Tim Hoffmann
|
|
415
419
|
Tim Strazny
|
|
416
420
|
TJ Bruno
|
|
@@ -380,6 +380,57 @@ pull requests from other contributors yourself after having reviewed
|
|
|
380
380
|
them.
|
|
381
381
|
|
|
382
382
|
|
|
383
|
+
Merge/squash guidelines
|
|
384
|
+
-----------------------
|
|
385
|
+
|
|
386
|
+
When a PR is approved and ready to be integrated to the ``main`` branch, one has the option to *merge* the commits unchanged, or *squash* all the commits into a single commit.
|
|
387
|
+
|
|
388
|
+
Here are some guidelines on how to proceed, based on examples of a single PR commit history:
|
|
389
|
+
|
|
390
|
+
1. Miscellaneous commits:
|
|
391
|
+
|
|
392
|
+
* ``Implement X``
|
|
393
|
+
* ``Fix test_a``
|
|
394
|
+
* ``Add myself to AUTHORS``
|
|
395
|
+
* ``fixup! Fix test_a``
|
|
396
|
+
* ``Update tests/test_integration.py``
|
|
397
|
+
* ``Merge origin/main into PR branch``
|
|
398
|
+
* ``Update tests/test_integration.py``
|
|
399
|
+
|
|
400
|
+
In this case, prefer to use the **Squash** merge strategy: the commit history is a bit messy (not in a derogatory way, often one just commits changes because they know the changes will eventually be squashed together), so squashing everything into a single commit is best. You must clean up the commit message, making sure it contains useful details.
|
|
401
|
+
|
|
402
|
+
2. Separate commits related to the same topic:
|
|
403
|
+
|
|
404
|
+
* ``Implement X``
|
|
405
|
+
* ``Add myself to AUTHORS``
|
|
406
|
+
* ``Update CHANGELOG for X``
|
|
407
|
+
|
|
408
|
+
In this case, prefer to use the **Squash** merge strategy: while the commit history is not "messy" as in the example above, the individual commits do not bring much value overall, specially when looking at the changes a few months/years down the line.
|
|
409
|
+
|
|
410
|
+
3. Separate commits, each with their own topic (refactorings, renames, etc), but still have a larger topic/purpose.
|
|
411
|
+
|
|
412
|
+
* ``Refactor class X in preparation for feature Y``
|
|
413
|
+
* ``Remove unused method``
|
|
414
|
+
* ``Implement feature Y``
|
|
415
|
+
|
|
416
|
+
In this case, prefer to use the **Merge** strategy: each commit is valuable on its own, even if they serve a common topic overall. Looking at the history later, it is useful to have the removal of the unused method separately on its own commit, along with more information (such as how it became unused in the first place).
|
|
417
|
+
|
|
418
|
+
4. Separate commits, each with their own topic, but without a larger topic/purpose other than improve the code base (using more modern techniques, improve typing, removing clutter, etc).
|
|
419
|
+
|
|
420
|
+
* ``Improve internal names in X``
|
|
421
|
+
* ``Add type annotations to Y``
|
|
422
|
+
* ``Remove unnecessary dict access``
|
|
423
|
+
* ``Remove unreachable code due to EOL Python``
|
|
424
|
+
|
|
425
|
+
In this case, prefer to use the **Merge** strategy: each commit is valuable on its own, and the information on each is valuable in the long term.
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
As mentioned, those are overall guidelines, not rules cast in stone. This topic was discussed in `#12633 <https://github.com/pytest-dev/pytest/discussions/12633>`_.
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
*Backport PRs* (as those created automatically from a ``backport`` label) should always be **squashed**, as they preserve the original PR author.
|
|
432
|
+
|
|
433
|
+
|
|
383
434
|
Backporting bug fixes for the next patch release
|
|
384
435
|
------------------------------------------------
|
|
385
436
|
|
|
@@ -438,6 +489,8 @@ above?
|
|
|
438
489
|
All the above are not rules, but merely some guidelines/suggestions on what we should expect
|
|
439
490
|
about backports.
|
|
440
491
|
|
|
492
|
+
Backports should be **squashed** (rather than **merged**), as doing so preserves the original PR author correctly.
|
|
493
|
+
|
|
441
494
|
Handling stale issues/PRs
|
|
442
495
|
-------------------------
|
|
443
496
|
|
|
@@ -485,9 +538,9 @@ When closing a Pull Request, it needs to be acknowledging the time, effort, and
|
|
|
485
538
|
|
|
486
539
|
<bye>
|
|
487
540
|
|
|
488
|
-
Closing
|
|
541
|
+
Closing issues
|
|
489
542
|
--------------
|
|
490
543
|
|
|
491
544
|
When a pull request is submitted to fix an issue, add text like ``closes #XYZW`` to the PR description and/or commits (where ``XYZW`` is the issue number). See the `GitHub docs <https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword>`_ for more information.
|
|
492
545
|
|
|
493
|
-
When an issue is due to user error (e.g. misunderstanding of a functionality), please politely explain to the user why the issue raised is really a non-issue and ask them to close the issue if they have no further questions. If the original
|
|
546
|
+
When an issue is due to user error (e.g. misunderstanding of a functionality), please politely explain to the user why the issue raised is really a non-issue and ask them to close the issue if they have no further questions. If the original requester is unresponsive, the issue will be handled as described in the section `Handling stale issues/PRs`_ above.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pytest
|
|
3
|
-
Version: 8.3.
|
|
3
|
+
Version: 8.3.3
|
|
4
4
|
Summary: pytest: simple powerful testing with Python
|
|
5
5
|
Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin, Others (See AUTHORS)
|
|
6
6
|
License: MIT
|
|
@@ -6,10 +6,10 @@ and parametrized testing in Python. It is now easier, more efficient and
|
|
|
6
6
|
more predictable to re-run the same tests with different fixture
|
|
7
7
|
instances. Also, you can directly declare the caching "scope" of
|
|
8
8
|
fixtures so that dependent tests throughout your whole test suite can
|
|
9
|
-
|
|
9
|
+
reuse database or other expensive fixture objects with ease. Lastly,
|
|
10
10
|
it's possible for fixture functions (formerly known as funcarg
|
|
11
11
|
factories) to use other fixtures, allowing for a completely modular and
|
|
12
|
-
|
|
12
|
+
reusable fixture design.
|
|
13
13
|
|
|
14
14
|
For detailed info and tutorial-style examples, see:
|
|
15
15
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
pytest-8.3.3
|
|
2
|
+
=======================================
|
|
3
|
+
|
|
4
|
+
pytest 8.3.3 has just been released to PyPI.
|
|
5
|
+
|
|
6
|
+
This is a bug-fix release, being a drop-in replacement. To upgrade::
|
|
7
|
+
|
|
8
|
+
pip install --upgrade pytest
|
|
9
|
+
|
|
10
|
+
The full changelog is available at https://docs.pytest.org/en/stable/changelog.html.
|
|
11
|
+
|
|
12
|
+
Thanks to all of the contributors to this release:
|
|
13
|
+
|
|
14
|
+
* Anthony Sottile
|
|
15
|
+
* Avasam
|
|
16
|
+
* Bruno Oliveira
|
|
17
|
+
* Christian Clauss
|
|
18
|
+
* Eugene Mwangi
|
|
19
|
+
* Florian Bruhin
|
|
20
|
+
* GTowers1
|
|
21
|
+
* Nauman Ahmed
|
|
22
|
+
* Pierre Sassoulas
|
|
23
|
+
* Reagan Lee
|
|
24
|
+
* Ronny Pfannschmidt
|
|
25
|
+
* Stefaan Lippens
|
|
26
|
+
* Sviatoslav Sydorenko (Святослав Сидоренко)
|
|
27
|
+
* dongfangtianyu
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Happy testing,
|
|
31
|
+
The pytest Development Team
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# This file contains transitive dependencies that need to be pinned for some reason.
|
|
2
|
+
# Eventually this file will be empty, but in this case keep it around for future use.
|
|
3
|
+
|
|
4
|
+
# Pin towncrier temporarily due to incompatibility with sphinxcontrib-towncrier:
|
|
5
|
+
# https://github.com/sphinx-contrib/sphinxcontrib-towncrier/issues/92
|
|
6
|
+
towncrier<24.7
|
|
@@ -22,7 +22,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
22
22
|
cachedir: .pytest_cache
|
|
23
23
|
rootdir: /home/sweet/project
|
|
24
24
|
collected 0 items
|
|
25
|
-
cache -- .../_pytest/cacheprovider.py:
|
|
25
|
+
cache -- .../_pytest/cacheprovider.py:556
|
|
26
26
|
Return a cache object that can persist state between testing sessions.
|
|
27
27
|
|
|
28
28
|
cache.get(key, default)
|
|
@@ -33,7 +33,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
33
33
|
|
|
34
34
|
Values can be any object handled by the json stdlib module.
|
|
35
35
|
|
|
36
|
-
capsysbinary -- .../_pytest/capture.py:
|
|
36
|
+
capsysbinary -- .../_pytest/capture.py:1006
|
|
37
37
|
Enable bytes capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
|
38
38
|
|
|
39
39
|
The captured output is made available via ``capsysbinary.readouterr()``
|
|
@@ -51,7 +51,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
51
51
|
captured = capsysbinary.readouterr()
|
|
52
52
|
assert captured.out == b"hello\n"
|
|
53
53
|
|
|
54
|
-
capfd -- .../_pytest/capture.py:
|
|
54
|
+
capfd -- .../_pytest/capture.py:1034
|
|
55
55
|
Enable text capturing of writes to file descriptors ``1`` and ``2``.
|
|
56
56
|
|
|
57
57
|
The captured output is made available via ``capfd.readouterr()`` method
|
|
@@ -69,7 +69,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
69
69
|
captured = capfd.readouterr()
|
|
70
70
|
assert captured.out == "hello\n"
|
|
71
71
|
|
|
72
|
-
capfdbinary -- .../_pytest/capture.py:
|
|
72
|
+
capfdbinary -- .../_pytest/capture.py:1062
|
|
73
73
|
Enable bytes capturing of writes to file descriptors ``1`` and ``2``.
|
|
74
74
|
|
|
75
75
|
The captured output is made available via ``capfd.readouterr()`` method
|
|
@@ -87,7 +87,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
87
87
|
captured = capfdbinary.readouterr()
|
|
88
88
|
assert captured.out == b"hello\n"
|
|
89
89
|
|
|
90
|
-
capsys -- .../_pytest/capture.py:
|
|
90
|
+
capsys -- .../_pytest/capture.py:978
|
|
91
91
|
Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
|
92
92
|
|
|
93
93
|
The captured output is made available via ``capsys.readouterr()`` method
|
|
@@ -105,7 +105,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
105
105
|
captured = capsys.readouterr()
|
|
106
106
|
assert captured.out == "hello\n"
|
|
107
107
|
|
|
108
|
-
doctest_namespace [session scope] -- .../_pytest/doctest.py:
|
|
108
|
+
doctest_namespace [session scope] -- .../_pytest/doctest.py:741
|
|
109
109
|
Fixture that returns a :py:class:`dict` that will be injected into the
|
|
110
110
|
namespace of doctests.
|
|
111
111
|
|
|
@@ -119,14 +119,14 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
119
119
|
|
|
120
120
|
For more details: :ref:`doctest_namespace`.
|
|
121
121
|
|
|
122
|
-
pytestconfig [session scope] -- .../_pytest/fixtures.py:
|
|
122
|
+
pytestconfig [session scope] -- .../_pytest/fixtures.py:1345
|
|
123
123
|
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
|
124
124
|
object.
|
|
125
125
|
|
|
126
126
|
Example::
|
|
127
127
|
|
|
128
128
|
def test_foo(pytestconfig):
|
|
129
|
-
if pytestconfig.
|
|
129
|
+
if pytestconfig.get_verbosity() > 0:
|
|
130
130
|
...
|
|
131
131
|
|
|
132
132
|
record_property -- .../_pytest/junitxml.py:280
|
|
@@ -196,7 +196,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
196
196
|
|
|
197
197
|
.. _legacy_path: https://py.readthedocs.io/en/latest/path.html
|
|
198
198
|
|
|
199
|
-
caplog -- .../_pytest/logging.py:
|
|
199
|
+
caplog -- .../_pytest/logging.py:598
|
|
200
200
|
Access and control log capturing.
|
|
201
201
|
|
|
202
202
|
Captured logs are available through the following properties/methods::
|
|
@@ -31,6 +31,52 @@ with advance notice in the **Deprecations** section of releases.
|
|
|
31
31
|
|
|
32
32
|
.. towncrier release notes start
|
|
33
33
|
|
|
34
|
+
pytest 8.3.3 (2024-09-09)
|
|
35
|
+
=========================
|
|
36
|
+
|
|
37
|
+
Bug fixes
|
|
38
|
+
---------
|
|
39
|
+
|
|
40
|
+
- `#12446 <https://github.com/pytest-dev/pytest/issues/12446>`_: Avoid calling ``@property`` (and other instance descriptors) during fixture discovery -- by :user:`asottile`
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
- `#12659 <https://github.com/pytest-dev/pytest/issues/12659>`_: Fixed the issue of not displaying assertion failure differences when using the parameter ``--import-mode=importlib`` in pytest>=8.1.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
- `#12667 <https://github.com/pytest-dev/pytest/issues/12667>`_: Fixed a regression where type change in `ExceptionInfo.errisinstance` caused `mypy` to fail.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
- `#12744 <https://github.com/pytest-dev/pytest/issues/12744>`_: Fixed typing compatibility with Python 3.9 or less -- replaced `typing.Self` with `typing_extensions.Self` -- by :user:`Avasam`
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
- `#12745 <https://github.com/pytest-dev/pytest/issues/12745>`_: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
- `#6682 <https://github.com/pytest-dev/pytest/issues/6682>`_: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in ``assert condition, msg``).
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
- `#9422 <https://github.com/pytest-dev/pytest/issues/9422>`_: Fix bug where disabling the terminal plugin via ``-p no:terminal`` would cause crashes related to missing the ``verbose`` option.
|
|
59
|
+
|
|
60
|
+
-- by :user:`GTowers1`
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
Improved documentation
|
|
65
|
+
----------------------
|
|
66
|
+
|
|
67
|
+
- `#12663 <https://github.com/pytest-dev/pytest/issues/12663>`_: Clarify that the `pytest_deselected` hook should be called from `pytest_collection_modifyitems` hook implementations when items are deselected.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
- `#12678 <https://github.com/pytest-dev/pytest/issues/12678>`_: Remove erroneous quotes from `tmp_path_retention_policy` example in docs.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Miscellaneous internal changes
|
|
75
|
+
------------------------------
|
|
76
|
+
|
|
77
|
+
- `#12769 <https://github.com/pytest-dev/pytest/issues/12769>`_: Fix typos discovered by codespell and add codespell to pre-commit hooks.
|
|
78
|
+
|
|
79
|
+
|
|
34
80
|
pytest 8.3.2 (2024-07-24)
|
|
35
81
|
=========================
|
|
36
82
|
|
|
@@ -215,7 +261,7 @@ Improved documentation
|
|
|
215
261
|
-- by :user:`webknjaz`
|
|
216
262
|
|
|
217
263
|
|
|
218
|
-
- `#12577 <https://github.com/pytest-dev/pytest/issues/12577>`_: `CI` and `BUILD_NUMBER` environment variables role is
|
|
264
|
+
- `#12577 <https://github.com/pytest-dev/pytest/issues/12577>`_: `CI` and `BUILD_NUMBER` environment variables role is described in
|
|
219
265
|
the reference doc. They now also appear when doing `pytest -h`
|
|
220
266
|
-- by :user:`MarcBresson`.
|
|
221
267
|
|
|
@@ -319,7 +365,7 @@ Bug Fixes
|
|
|
319
365
|
- `#12367 <https://github.com/pytest-dev/pytest/issues/12367>`_: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
|
|
320
366
|
|
|
321
367
|
|
|
322
|
-
- `#12381 <https://github.com/pytest-dev/pytest/issues/12381>`_: Fix possible "Directory not empty" crashes arising from
|
|
368
|
+
- `#12381 <https://github.com/pytest-dev/pytest/issues/12381>`_: Fix possible "Directory not empty" crashes arising from concurrent cache dir (``.pytest_cache``) creation. Regressed in pytest 8.2.0.
|
|
323
369
|
|
|
324
370
|
|
|
325
371
|
|
|
@@ -330,7 +376,7 @@ Improved Documentation
|
|
|
330
376
|
|
|
331
377
|
|
|
332
378
|
- `#12356 <https://github.com/pytest-dev/pytest/issues/12356>`_: Added a subsection to the documentation for debugging flaky tests to mention
|
|
333
|
-
lack of thread safety in pytest as a possible source of
|
|
379
|
+
lack of thread safety in pytest as a possible source of flakiness.
|
|
334
380
|
|
|
335
381
|
|
|
336
382
|
- `#12363 <https://github.com/pytest-dev/pytest/issues/12363>`_: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
|
|
@@ -676,7 +722,7 @@ Bug Fixes
|
|
|
676
722
|
This bug was introduced in pytest 8.0.0rc1.
|
|
677
723
|
|
|
678
724
|
|
|
679
|
-
- `#9765 <https://github.com/pytest-dev/pytest/issues/9765>`_, `#11816 <https://github.com/pytest-dev/pytest/issues/11816>`_: Fixed a frustrating bug that afflicted some users with the only error being ``assert mod not in mods``. The issue was caused by the fact that ``str(Path(mod))`` and ``mod.__file__`` don't necessarily produce the same string, and was being erroneously used
|
|
725
|
+
- `#9765 <https://github.com/pytest-dev/pytest/issues/9765>`_, `#11816 <https://github.com/pytest-dev/pytest/issues/11816>`_: Fixed a frustrating bug that afflicted some users with the only error being ``assert mod not in mods``. The issue was caused by the fact that ``str(Path(mod))`` and ``mod.__file__`` don't necessarily produce the same string, and was being erroneously used interchangeably in some places in the code.
|
|
680
726
|
|
|
681
727
|
This fix also broke the internal API of ``PytestPluginManager.consider_conftest`` by introducing a new parameter -- we mention this in case it is being used by external code, even if marked as *private*.
|
|
682
728
|
|
|
@@ -33,10 +33,11 @@ Mail
|
|
|
33
33
|
discussed in public. Mails sent there will be distributed among the members
|
|
34
34
|
in the pytest core team, who can also be contacted individually:
|
|
35
35
|
|
|
36
|
-
* Ronny Pfannschmidt (:user:`RonnyPfannschmidt`, `ronny@pytest.org <mailto:ronny@pytest.org>`_)
|
|
37
|
-
* Florian Bruhin (:user:`The-Compiler`, `florian@pytest.org <mailto:florian@pytest.org>`_)
|
|
38
36
|
* Bruno Oliveira (:user:`nicoddemus`, `bruno@pytest.org <mailto:bruno@pytest.org>`_)
|
|
37
|
+
* Florian Bruhin (:user:`The-Compiler`, `florian@pytest.org <mailto:florian@pytest.org>`_)
|
|
38
|
+
* Pierre Sassoulas (:user:`Pierre-Sassoulas`, `pierre@pytest.org <mailto:pierre@pytest.org>`_)
|
|
39
39
|
* Ran Benita (:user:`bluetech`, `ran@pytest.org <mailto:ran@pytest.org>`_)
|
|
40
|
+
* Ronny Pfannschmidt (:user:`RonnyPfannschmidt`, `ronny@pytest.org <mailto:ronny@pytest.org>`_)
|
|
40
41
|
* Zac Hatfield-Dodds (:user:`Zac-HD`, `zac@pytest.org <mailto:zac@pytest.org>`_)
|
|
41
42
|
|
|
42
43
|
Other
|
|
@@ -43,7 +43,7 @@ If the import attempt raises :class:`ModuleNotFoundError` (the usual case), then
|
|
|
43
43
|
warning is emitted.
|
|
44
44
|
|
|
45
45
|
This way, the usual cases will keep working the same way, while unexpected errors will now issue a warning, with
|
|
46
|
-
users being able to
|
|
46
|
+
users being able to suppress the warning by passing ``exc_type=ImportError`` explicitly.
|
|
47
47
|
|
|
48
48
|
In ``9.0``, the warning will turn into an error, and in ``9.1`` :func:`pytest.importorskip` will only capture
|
|
49
49
|
:class:`ModuleNotFoundError` by default and no warnings will be issued anymore -- but users can still capture
|
|
@@ -162,7 +162,7 @@ objects, they are still using the default pytest representation:
|
|
|
162
162
|
rootdir: /home/sweet/project
|
|
163
163
|
collected 8 items
|
|
164
164
|
|
|
165
|
-
<Dir parametrize.rst-
|
|
165
|
+
<Dir parametrize.rst-204>
|
|
166
166
|
<Module test_time.py>
|
|
167
167
|
<Function test_timedistance_v0[a0-b0-expected0]>
|
|
168
168
|
<Function test_timedistance_v0[a1-b1-expected1]>
|
|
@@ -239,7 +239,7 @@ If you just collect tests you'll also nicely see 'advanced' and 'basic' as varia
|
|
|
239
239
|
rootdir: /home/sweet/project
|
|
240
240
|
collected 4 items
|
|
241
241
|
|
|
242
|
-
<Dir parametrize.rst-
|
|
242
|
+
<Dir parametrize.rst-204>
|
|
243
243
|
<Module test_scenarios.py>
|
|
244
244
|
<Class TestSampleWithScenarios>
|
|
245
245
|
<Function test_demo1[basic]>
|
|
@@ -318,7 +318,7 @@ Let's first see how it looks like at collection time:
|
|
|
318
318
|
rootdir: /home/sweet/project
|
|
319
319
|
collected 2 items
|
|
320
320
|
|
|
321
|
-
<Dir parametrize.rst-
|
|
321
|
+
<Dir parametrize.rst-204>
|
|
322
322
|
<Module test_backends.py>
|
|
323
323
|
<Function test_db_initialized[d1]>
|
|
324
324
|
<Function test_db_initialized[d2]>
|
|
@@ -686,5 +686,5 @@ For example:
|
|
|
686
686
|
assert (6 / example_input) == e
|
|
687
687
|
|
|
688
688
|
In the example above, the first three test cases should run without any
|
|
689
|
-
exceptions, while the fourth should raise a``ZeroDivisionError`` exception,
|
|
689
|
+
exceptions, while the fourth should raise a ``ZeroDivisionError`` exception,
|
|
690
690
|
which is expected by pytest.
|
|
@@ -152,7 +152,7 @@ The test collection would look like this:
|
|
|
152
152
|
configfile: pytest.ini
|
|
153
153
|
collected 2 items
|
|
154
154
|
|
|
155
|
-
<Dir pythoncollection.rst-
|
|
155
|
+
<Dir pythoncollection.rst-205>
|
|
156
156
|
<Module check_myapp.py>
|
|
157
157
|
<Class CheckMyApp>
|
|
158
158
|
<Function simple_check>
|
|
@@ -215,7 +215,7 @@ You can always peek at the collection tree without running tests like this:
|
|
|
215
215
|
configfile: pytest.ini
|
|
216
216
|
collected 3 items
|
|
217
217
|
|
|
218
|
-
<Dir pythoncollection.rst-
|
|
218
|
+
<Dir pythoncollection.rst-205>
|
|
219
219
|
<Dir CWD>
|
|
220
220
|
<Module pythoncollection.py>
|
|
221
221
|
<Function test_function>
|
|
@@ -460,7 +460,7 @@ display more information if applicable:
|
|
|
460
460
|
|
|
461
461
|
|
|
462
462
|
def pytest_report_header(config):
|
|
463
|
-
if config.
|
|
463
|
+
if config.get_verbosity() > 0:
|
|
464
464
|
return ["info1: did you know that ...", "did you?"]
|
|
465
465
|
|
|
466
466
|
which will add info only when run with "--v":
|
|
@@ -75,7 +75,7 @@ style of setup/teardown functions:
|
|
|
75
75
|
|
|
76
76
|
* fixture management scales from simple unit to complex
|
|
77
77
|
functional testing, allowing to parametrize fixtures and tests according
|
|
78
|
-
to configuration and component options, or to
|
|
78
|
+
to configuration and component options, or to reuse fixtures
|
|
79
79
|
across function, class, module or whole test session scopes.
|
|
80
80
|
|
|
81
81
|
* teardown logic can be easily, and safely managed, no matter how many fixtures
|
|
@@ -16,7 +16,7 @@ Shortcomings of the previous ``pytest_funcarg__`` mechanism
|
|
|
16
16
|
|
|
17
17
|
The pre pytest-2.3 funcarg mechanism calls a factory each time a
|
|
18
18
|
funcarg for a test function is required. If a factory wants to
|
|
19
|
-
|
|
19
|
+
reuse a resource across different scopes, it often used
|
|
20
20
|
the ``request.cached_setup()`` helper to manage caching of
|
|
21
21
|
resources. Here is a basic example how we could implement
|
|
22
22
|
a per-session Database object:
|
|
@@ -107,7 +107,7 @@ the tests requiring "db" will run twice as well. The "mysql" and
|
|
|
107
107
|
"pg" values will also be used for reporting the test-invocation variants.
|
|
108
108
|
|
|
109
109
|
This new way of parametrizing funcarg factories should in many cases
|
|
110
|
-
allow to
|
|
110
|
+
allow to reuse already written factories because effectively
|
|
111
111
|
``request.param`` was already used when test functions/classes were
|
|
112
112
|
parametrized via
|
|
113
113
|
:py:func:`metafunc.parametrize(indirect=True) <pytest.Metafunc.parametrize>` calls.
|
|
@@ -164,7 +164,7 @@ hook which are often used to setup global resources. This suffers from
|
|
|
164
164
|
several problems:
|
|
165
165
|
|
|
166
166
|
1. in distributed testing the managing process would setup test resources
|
|
167
|
-
that are never needed because it only
|
|
167
|
+
that are never needed because it only coordinates the test run
|
|
168
168
|
activities of the worker processes.
|
|
169
169
|
|
|
170
170
|
2. if you only perform a collection (with "--collect-only")
|
|
@@ -1418,7 +1418,7 @@ Running the above tests results in the following test IDs being used:
|
|
|
1418
1418
|
rootdir: /home/sweet/project
|
|
1419
1419
|
collected 12 items
|
|
1420
1420
|
|
|
1421
|
-
<Dir fixtures.rst-
|
|
1421
|
+
<Dir fixtures.rst-224>
|
|
1422
1422
|
<Module test_anothersmtp.py>
|
|
1423
1423
|
<Function test_showhelo[smtp.gmail.com]>
|
|
1424
1424
|
<Function test_showhelo[mail.python.org]>
|
|
@@ -1487,7 +1487,7 @@ Modularity: using fixtures from a fixture function
|
|
|
1487
1487
|
|
|
1488
1488
|
In addition to using fixtures in test functions, fixture functions
|
|
1489
1489
|
can use other fixtures themselves. This contributes to a modular design
|
|
1490
|
-
of your fixtures and allows
|
|
1490
|
+
of your fixtures and allows reuse of framework-specific fixtures across
|
|
1491
1491
|
many projects. As a simple example, we can extend the previous example
|
|
1492
1492
|
and instantiate an object ``app`` where we stick the already defined
|
|
1493
1493
|
``smtp_connection`` resource into it:
|
|
@@ -109,7 +109,7 @@ achieves this by receiving a special ``request`` object which gives
|
|
|
109
109
|
access to :ref:`the requesting test context <request-context>` such
|
|
110
110
|
as the ``cls`` attribute, denoting the class from which the fixture
|
|
111
111
|
is used. This architecture de-couples fixture writing from actual test
|
|
112
|
-
code and allows
|
|
112
|
+
code and allows reuse of the fixture by a minimal reference, the fixture
|
|
113
113
|
name. So let's write an actual ``unittest.TestCase`` class using our
|
|
114
114
|
fixture definition:
|
|
115
115
|
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
.. sidebar:: **Next Open Trainings and Events**
|
|
4
4
|
|
|
5
|
-
- `pytest: Professionelles Testen (nicht nur) für Python <https://pretalx.com/workshoptage-2024/talk/9VUHYB/>`_, at `CH Open Workshoptage <https://workshoptage.ch/>`_, **September 2nd 2024**, HSLU Rotkreuz (CH)
|
|
6
5
|
- `Professional Testing with Python <https://python-academy.com/courses/python_course_testing.html>`_, via `Python Academy <https://www.python-academy.com/>`_ (3 day in-depth training), **March 4th -- 6th 2025**, Leipzig (DE) / Remote
|
|
7
6
|
|
|
8
7
|
Also see :doc:`previous talks and blogposts <talks>`
|
|
@@ -1287,10 +1287,10 @@ passed multiple times. The expected format is ``name=value``. For example::
|
|
|
1287
1287
|
|
|
1288
1288
|
.. confval:: cache_dir
|
|
1289
1289
|
|
|
1290
|
-
Sets
|
|
1290
|
+
Sets the directory where the cache plugin's content is stored. Default directory is
|
|
1291
1291
|
``.pytest_cache`` which is created in :ref:`rootdir <rootdir>`. Directory may be
|
|
1292
1292
|
relative or absolute path. If setting relative path, then directory is created
|
|
1293
|
-
relative to :ref:`rootdir <rootdir>`. Additionally path may contain environment
|
|
1293
|
+
relative to :ref:`rootdir <rootdir>`. Additionally, a path may contain environment
|
|
1294
1294
|
variables, that will be expanded. For more information about cache plugin
|
|
1295
1295
|
please refer to :ref:`cache_provider`.
|
|
1296
1296
|
|
|
@@ -1866,7 +1866,7 @@ passed multiple times. The expected format is ``name=value``. For example::
|
|
|
1866
1866
|
.. code-block:: ini
|
|
1867
1867
|
|
|
1868
1868
|
[pytest]
|
|
1869
|
-
tmp_path_retention_policy =
|
|
1869
|
+
tmp_path_retention_policy = all
|
|
1870
1870
|
|
|
1871
1871
|
Default: ``all``
|
|
1872
1872
|
|
|
@@ -306,6 +306,11 @@ disable = [
|
|
|
306
306
|
"wrong-import-position", # handled by isort / ruff
|
|
307
307
|
]
|
|
308
308
|
|
|
309
|
+
[tool.codespell]
|
|
310
|
+
ignore-words-list = "afile,asser,assertio,feld,hove,ned,noes,notin,paramete,parth,socio-economic,tesults,varius,wil"
|
|
311
|
+
skip = "*/plugin_list.rst"
|
|
312
|
+
write-changes = true
|
|
313
|
+
|
|
309
314
|
[tool.check-wheel-contents]
|
|
310
315
|
# check-wheel-contents is executed by the build-and-inspect-python-package action.
|
|
311
316
|
# W009: Wheel contains multiple toplevel library entries
|