pytest 8.1.2__tar.gz → 8.2.0__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.1.2 → pytest-8.2.0}/.github/workflows/deploy.yml +3 -3
- {pytest-8.1.2 → pytest-8.2.0}/.github/workflows/stale.yml +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/.github/workflows/test.yml +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/.github/workflows/update-plugin-list.yml +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/.gitignore +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/.pre-commit-config.yaml +12 -5
- {pytest-8.1.2 → pytest-8.2.0}/AUTHORS +5 -0
- {pytest-8.1.2 → pytest-8.2.0}/CONTRIBUTING.rst +2 -2
- {pytest-8.1.2/src/pytest.egg-info → pytest-8.2.0}/PKG-INFO +11 -11
- {pytest-8.1.2 → pytest-8.2.0}/TIDELIFT.rst +2 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/index.rst +1 -0
- pytest-8.2.0/doc/en/announce/release-8.2.0.rst +43 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/builtin.rst +15 -15
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/changelog.rst +81 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/deprecations.rst +35 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/parametrize.rst +3 -3
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/pythoncollection.rst +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/getting-started.rst +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/fixtures.rst +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/output.rst +41 -3
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/usage.rst +24 -1
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/plugin_list.rst +640 -320
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/reference.rst +7 -3
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/requirements.txt +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/pyproject.toml +117 -2
- {pytest-8.1.2 → pytest-8.2.0}/scripts/generate-gh-release-notes.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/prepare-release-pr.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/release.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/__init__.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_code/code.py +15 -17
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_code/source.py +2 -4
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_io/terminalwriter.py +3 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_py/path.py +12 -25
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_version.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/assertion/__init__.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/assertion/rewrite.py +6 -8
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/assertion/util.py +3 -3
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/cacheprovider.py +34 -19
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/capture.py +14 -19
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/compat.py +4 -6
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/config/__init__.py +9 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/config/argparsing.py +3 -3
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/debugging.py +2 -3
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/doctest.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/fixtures.py +359 -220
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/freeze_support.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/helpconfig.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/hookspec.py +40 -2
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/junitxml.py +4 -3
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/logging.py +3 -2
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/main.py +2 -4
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/mark/structures.py +9 -15
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/monkeypatch.py +3 -4
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/nodes.py +3 -5
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/outcomes.py +60 -3
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/pastebin.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/pathlib.py +146 -62
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/pytester.py +8 -14
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/python.py +28 -173
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/python_api.py +8 -10
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/recwarn.py +6 -10
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/reports.py +4 -5
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/runner.py +4 -4
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/setuponly.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/skipping.py +2 -1
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/terminal.py +5 -4
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/tmpdir.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/unittest.py +50 -30
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest/__init__.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0/src/pytest.egg-info}/PKG-INFO +11 -11
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest.egg-info/SOURCES.txt +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest.egg-info/requires.txt +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/_py/test_local.py +5 -5
- {pytest-8.1.2 → pytest-8.2.0}/testing/acceptance_test.py +27 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/code/test_excinfo.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/deprecated_test.py +26 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/acceptance/fixture_mock_integration.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_setup_skip.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_setup_skip_class.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_setup_skip_module.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_unittest_asynctest.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/io/test_saferepr.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/io/test_wcwidth.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/requirements.txt +7 -7
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/approx.py +1 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/fixtures.py +238 -3
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/integration.py +16 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/metafunc.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_assertrewrite.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_cacheprovider.py +37 -7
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_config.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_debugging.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_junitxml.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_mark.py +2 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_parseopt.py +11 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_pathlib.py +360 -31
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_reports.py +3 -3
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_runner.py +86 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_runner_xunit.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_skipping.py +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_terminal.py +45 -2
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_unittest.py +94 -1
- {pytest-8.1.2 → pytest-8.2.0}/testing/typing_checks.py +1 -0
- {pytest-8.1.2 → pytest-8.2.0}/tox.ini +1 -1
- {pytest-8.1.2 → pytest-8.2.0}/.coveragerc +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.git-blame-ignore-revs +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.gitattributes +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/FUNDING.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/ISSUE_TEMPLATE/1_bug_report.md +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/ISSUE_TEMPLATE/2_feature_request.md +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/config.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/dependabot.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/labels.toml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/workflows/backport.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.github/workflows/prepare-release-pr.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/.readthedocs.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/CHANGELOG.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/CITATION +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/CODE_OF_CONDUCT.md +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/LICENSE +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/OPENCOLLECTIVE.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/README.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/RELEASING.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/bench.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/bench_argcomplete.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/empty.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/manyparam.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/skip.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/unit_test.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/bench/xunit.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/changelog/README.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/changelog/_template.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/codecov.yml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/Makefile +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/globaltoc.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/layout.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/links.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/relations.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/sidebarintro.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/_templates/slim_searchbox.html +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/adopt.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.0.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.0.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.1.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.2.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.2.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.3.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.4.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.4.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.4.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.5.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.5.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.5.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.6.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.6.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.6.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.6.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.7.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.7.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.7.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.6.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.8.7.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.9.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.9.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-2.9.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.6.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.0.7.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.1.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.10.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.10.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.2.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.3.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.3.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.3.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.4.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.4.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.4.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.5.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.5.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.6.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.6.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.6.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.6.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.6.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.7.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.7.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.7.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.7.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.7.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.8.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.8.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.8.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.9.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.9.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.9.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-3.9.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.0.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.3.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.3.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.4.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.4.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.4.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.5.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.6.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.7.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.8.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-4.6.9.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.1.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.2.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.2.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.2.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.3.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.4.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.4.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.4.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-5.4.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.0.0rc1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.0.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-6.2.5.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.0.0rc1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.1.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.2.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.2.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.2.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.3.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.3.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.3.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.4.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.4.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.4.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.4.3.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-7.4.4.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.0.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.0.0rc1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.0.0rc2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.0.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.0.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.1.0.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.1.1.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/release-8.1.2.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/announce/sprint2016.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/backwards-compatibility.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/conf.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/contact.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/contents.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/contributing.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/development_guide.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/assertion/failure_demo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/assertion/global_testmodule_config/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/assertion/global_testmodule_config/test_hello_world.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/assertion/test_failures.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/assertion/test_setup_flow_example.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/attic.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/tests/manifest.json +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/tests/test_first.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/tests/test_second.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory/tests/test_third.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/customdirectory.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/fixture_availability.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/fixture_availability_plugins.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse_flat.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_dependencies.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_dependencies.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_dependencies_flat.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_dependencies_unclear.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_scope.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_order_scope.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_request_different_scope.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/fixtures/test_fixtures_request_different_scope.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/index.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/markers.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/multipython.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/nonpython/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/nonpython/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/nonpython/test_simple.yaml +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/nonpython.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/pythoncollection.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/reportingdemo.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/simple.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/special.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/example/xfail_demo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/anatomy.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/fixtures.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/flaky.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/goodpractices.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/index.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/explanation/pythonpath.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/funcarg_compare.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/funcargs.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/historical-notes.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/history.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/assert.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/bash-completion.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/cache.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/capture-stdout-stderr.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/capture-warnings.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/doctest.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/existingtestsuite.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/failures.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/index.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/logging.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/mark.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/monkeypatch.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/parametrize.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/plugins.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/skipping.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/tmp_path.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/unittest.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/writing_hook_functions.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/writing_plugins.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/how-to/xunit_setup.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/cramer2.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/favicon.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/freiburg2.jpg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/gaynor3.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/keleshev.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/pullrequest.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/pylib.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/pytest1.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/pytest_logo_curves.svg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/img/theuni.png +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/index.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/license.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/naming20.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/proposals/parametrize_with_fixtures.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/recwarn.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/customize.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/exit-codes.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/fixtures.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/reference/index.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/sponsor.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/talks.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/tidelift.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/doc/en/yieldfixture.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/extra/get_issues.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/.gitignore +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/release.major.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/release.minor.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/release.patch.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/release.pre.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/towncrier-draft-to-file.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/scripts/update-plugin-list.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/setup.cfg +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_argcomplete.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_code/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_io/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_io/pprint.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_io/saferepr.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_io/wcwidth.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_py/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/_py/error.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/assertion/truncate.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/config/compat.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/config/exceptions.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/config/findpaths.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/deprecated.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/faulthandler.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/legacypath.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/mark/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/mark/expression.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/py.typed +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/pytester_assertions.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/python_path.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/scope.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/setupplan.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/stash.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/stepwise.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/threadexception.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/timing.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/unraisableexception.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/warning_types.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/_pytest/warnings.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/py.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest/__main__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest/py.typed +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest.egg-info/dependency_links.txt +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest.egg-info/entry_points.txt +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/src/pytest.egg-info/top_level.txt +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/code/test_code.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/code/test_source.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/README.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/collect_init_tests/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/collect_init_tests/tests/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/collect_init_tests/tests/test_foo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_infinite_recursion/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_infinite_recursion/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/config/collect_pytest_prefix/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/config/collect_pytest_prefix/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/config/collect_pytest_prefix/test_foo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/conftest_usageerror/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/conftest_usageerror/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/tests/manifest.json +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/tests/test_first.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/tests/test_second.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/customdirectory/tests/test_third.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_dataclasses.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_dataclasses_with_custom_eq.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_initvar.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/doctest/main_py/__main__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/doctest/main_py/test_normal_module.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/custom_item/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/custom_item/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/custom_item/foo/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/custom_item/foo/test_foo.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/test_fixture_named_request.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/issue88_initial_file_multinodes/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/issue88_initial_file_multinodes/test_hello.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/issue_519.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/junit-10.xsd +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/marks/marks_considered_keywords/__init__.pyi +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/marks/marks_considered_keywords/conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/perf_examples/collect_stats/.gitignore +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/perf_examples/collect_stats/generate_folders.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/perf_examples/collect_stats/template_test.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/tmpdir/tmp_path_fixture.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_parametrized_fixture_error_message.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_unittest_asyncio.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/unittest/test_unittest_plain_async.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/warnings/test_group_warnings_by_message.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/examples/test_issue519.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/.gitignore +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/create_executable.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/runtests_script.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/tests/test_doctest.txt +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/tests/test_trivial.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/freeze/tox_run.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/io/test_pprint.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/io/test_terminalwriter.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/logging/test_fixture.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/logging/test_formatter.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/logging/test_reporting.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/.gitignore +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/README.rst +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/bdd_wallet.feature +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/bdd_wallet.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/django_settings.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest.ini +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest_anyio_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest_asyncio_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest_mock_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest_trio_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/pytest_twisted_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/plugins_integration/simple_integration.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/collect.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/raises.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/python/show_fixtures_per_test.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_argcomplete.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_assertion.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_capture.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_collection.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_compat.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_conftest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_doctest.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_entry_points.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_error_diffs.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_faulthandler.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_findpaths.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_helpconfig.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_legacypath.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_link_resolve.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_main.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_mark_expression.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_meta.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_monkeypatch.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_nodes.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_pastebin.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_pluginmanager.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_pytester.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_python_path.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_recwarn.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_scope.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_session.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_setuponly.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_setupplan.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_stash.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_stepwise.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_threadexception.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_tmpdir.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_unraisableexception.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_warning_types.py +0 -0
- {pytest-8.1.2 → pytest-8.2.0}/testing/test_warnings.py +0 -0
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
persist-credentials: false
|
|
27
27
|
|
|
28
28
|
- name: Build and Check Package
|
|
29
|
-
uses: hynek/build-and-inspect-python-package@v2.0
|
|
29
|
+
uses: hynek/build-and-inspect-python-package@v2.4.0
|
|
30
30
|
|
|
31
31
|
deploy:
|
|
32
32
|
if: github.repository == 'pytest-dev/pytest'
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
path: dist
|
|
48
48
|
|
|
49
49
|
- name: Publish package to PyPI
|
|
50
|
-
uses: pypa/gh-action-pypi-publish@v1.8.
|
|
50
|
+
uses: pypa/gh-action-pypi-publish@v1.8.14
|
|
51
51
|
|
|
52
52
|
- name: Push tag
|
|
53
53
|
run: |
|
|
@@ -94,7 +94,7 @@ jobs:
|
|
|
94
94
|
tox -e generate-gh-release-notes -- ${{ github.event.inputs.version }} scripts/latest-release-notes.md
|
|
95
95
|
|
|
96
96
|
- name: Publish GitHub Release
|
|
97
|
-
uses: softprops/action-gh-release@
|
|
97
|
+
uses: softprops/action-gh-release@v2
|
|
98
98
|
with:
|
|
99
99
|
body_path: scripts/latest-release-notes.md
|
|
100
100
|
files: dist/*
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
days-before-issue-close: 7
|
|
18
18
|
only-labels: "status: needs information"
|
|
19
19
|
stale-issue-label: "stale"
|
|
20
|
-
stale-issue-message: "This issue is stale because it has
|
|
21
|
-
close-issue-message: "This issue was closed because it has been
|
|
20
|
+
stale-issue-message: "This issue is stale because it has the `status: needs information` label and requested follow-up information was not provided for 14 days."
|
|
21
|
+
close-issue-message: "This issue was closed because it has the `status: needs information` label and follow-up information has not been provided for 7 days since being marked as stale."
|
|
22
22
|
days-before-pr-stale: -1
|
|
23
23
|
days-before-pr-close: -1
|
|
@@ -46,7 +46,7 @@ jobs:
|
|
|
46
46
|
run: python scripts/update-plugin-list.py
|
|
47
47
|
|
|
48
48
|
- name: Create Pull Request
|
|
49
|
-
uses: peter-evans/create-pull-request@
|
|
49
|
+
uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
|
|
50
50
|
with:
|
|
51
51
|
commit-message: '[automated] Update plugin list'
|
|
52
52
|
author: 'pytest bot <pytestbot@users.noreply.github.com>'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: "v0.
|
|
3
|
+
rev: "v0.4.1"
|
|
4
4
|
hooks:
|
|
5
5
|
- id: ruff
|
|
6
6
|
args: ["--fix"]
|
|
7
7
|
- id: ruff-format
|
|
8
8
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
-
rev: v4.
|
|
9
|
+
rev: v4.6.0
|
|
10
10
|
hooks:
|
|
11
11
|
- id: trailing-whitespace
|
|
12
12
|
- id: end-of-file-fixer
|
|
@@ -26,7 +26,7 @@ repos:
|
|
|
26
26
|
hooks:
|
|
27
27
|
- id: python-use-type-annotations
|
|
28
28
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
29
|
-
rev: v1.
|
|
29
|
+
rev: v1.9.0
|
|
30
30
|
hooks:
|
|
31
31
|
- id: mypy
|
|
32
32
|
files: ^(src/|testing/|scripts/)
|
|
@@ -34,7 +34,7 @@ repos:
|
|
|
34
34
|
additional_dependencies:
|
|
35
35
|
- iniconfig>=1.1.0
|
|
36
36
|
- attrs>=19.2.0
|
|
37
|
-
- pluggy>=1.
|
|
37
|
+
- pluggy>=1.5.0
|
|
38
38
|
- packaging
|
|
39
39
|
- tomli
|
|
40
40
|
- types-pkg_resources
|
|
@@ -43,13 +43,20 @@ repos:
|
|
|
43
43
|
# on <3.11
|
|
44
44
|
- exceptiongroup>=1.0.0rc8
|
|
45
45
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
46
|
-
rev: "1.
|
|
46
|
+
rev: "1.8.0"
|
|
47
47
|
hooks:
|
|
48
48
|
- id: pyproject-fmt
|
|
49
49
|
# https://pyproject-fmt.readthedocs.io/en/latest/#calculating-max-supported-python-version
|
|
50
50
|
additional_dependencies: ["tox>=4.9"]
|
|
51
51
|
- repo: local
|
|
52
52
|
hooks:
|
|
53
|
+
- id: pylint
|
|
54
|
+
name: pylint
|
|
55
|
+
entry: pylint
|
|
56
|
+
language: system
|
|
57
|
+
types: [python]
|
|
58
|
+
args: ["-rn", "-sn", "--fail-on=I"]
|
|
59
|
+
stages: [manual]
|
|
53
60
|
- id: rst
|
|
54
61
|
name: rst
|
|
55
62
|
entry: rst-lint --encoding utf-8
|
|
@@ -101,6 +101,7 @@ Cyrus Maden
|
|
|
101
101
|
Damian Skrzypczak
|
|
102
102
|
Daniel Grana
|
|
103
103
|
Daniel Hahler
|
|
104
|
+
Daniel Miller
|
|
104
105
|
Daniel Nuri
|
|
105
106
|
Daniel Sánchez Castelló
|
|
106
107
|
Daniel Valenzuela Zenteno
|
|
@@ -118,6 +119,7 @@ Daw-Ran Liou
|
|
|
118
119
|
Debi Mishra
|
|
119
120
|
Denis Kirisov
|
|
120
121
|
Denivy Braiam Rück
|
|
122
|
+
Dheeraj C K
|
|
121
123
|
Dhiren Serai
|
|
122
124
|
Diego Russo
|
|
123
125
|
Dmitry Dygalo
|
|
@@ -137,6 +139,7 @@ Endre Galaczi
|
|
|
137
139
|
Eric Hunsberger
|
|
138
140
|
Eric Liu
|
|
139
141
|
Eric Siegerman
|
|
142
|
+
Eric Yuan
|
|
140
143
|
Erik Aronesty
|
|
141
144
|
Erik Hasse
|
|
142
145
|
Erik M. Bray
|
|
@@ -235,6 +238,7 @@ Kyle Altendorf
|
|
|
235
238
|
Lawrence Mitchell
|
|
236
239
|
Lee Kamentsky
|
|
237
240
|
Lev Maximov
|
|
241
|
+
Levon Saldamli
|
|
238
242
|
Lewis Cowles
|
|
239
243
|
Llandy Riveron Del Risco
|
|
240
244
|
Loic Esteve
|
|
@@ -432,6 +436,7 @@ Xixi Zhao
|
|
|
432
436
|
Xuan Luong
|
|
433
437
|
Xuecong Liao
|
|
434
438
|
Yannick Péroux
|
|
439
|
+
Yao Xiao
|
|
435
440
|
Yoav Caspi
|
|
436
441
|
Yuliang Shao
|
|
437
442
|
Yusuke Kadowaki
|
|
@@ -297,12 +297,12 @@ Here is a simple overview, with pytest-specific bits:
|
|
|
297
297
|
When committing, ``pre-commit`` will re-format the files if necessary.
|
|
298
298
|
|
|
299
299
|
#. If instead of using ``tox`` you prefer to run the tests directly, then we suggest to create a virtual environment and use
|
|
300
|
-
an editable install with the ``
|
|
300
|
+
an editable install with the ``dev`` extra::
|
|
301
301
|
|
|
302
302
|
$ python3 -m venv .venv
|
|
303
303
|
$ source .venv/bin/activate # Linux
|
|
304
304
|
$ .venv/Scripts/activate.bat # Windows
|
|
305
|
-
$ pip install -e ".[
|
|
305
|
+
$ pip install -e ".[dev]"
|
|
306
306
|
|
|
307
307
|
Afterwards, you can edit the files and run pytest normally::
|
|
308
308
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pytest
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.2.0
|
|
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
|
|
@@ -34,17 +34,17 @@ Requires-Dist: colorama; sys_platform == "win32"
|
|
|
34
34
|
Requires-Dist: exceptiongroup>=1.0.0rc8; python_version < "3.11"
|
|
35
35
|
Requires-Dist: iniconfig
|
|
36
36
|
Requires-Dist: packaging
|
|
37
|
-
Requires-Dist: pluggy<2.0,>=1.
|
|
37
|
+
Requires-Dist: pluggy<2.0,>=1.5
|
|
38
38
|
Requires-Dist: tomli>=1; python_version < "3.11"
|
|
39
|
-
Provides-Extra:
|
|
40
|
-
Requires-Dist: argcomplete; extra == "
|
|
41
|
-
Requires-Dist: attrs>=19.2; extra == "
|
|
42
|
-
Requires-Dist: hypothesis>=3.56; extra == "
|
|
43
|
-
Requires-Dist: mock; extra == "
|
|
44
|
-
Requires-Dist: pygments>=2.7.2; extra == "
|
|
45
|
-
Requires-Dist: requests; extra == "
|
|
46
|
-
Requires-Dist: setuptools; extra == "
|
|
47
|
-
Requires-Dist: xmlschema; extra == "
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: argcomplete; extra == "dev"
|
|
41
|
+
Requires-Dist: attrs>=19.2; extra == "dev"
|
|
42
|
+
Requires-Dist: hypothesis>=3.56; extra == "dev"
|
|
43
|
+
Requires-Dist: mock; extra == "dev"
|
|
44
|
+
Requires-Dist: pygments>=2.7.2; extra == "dev"
|
|
45
|
+
Requires-Dist: requests; extra == "dev"
|
|
46
|
+
Requires-Dist: setuptools; extra == "dev"
|
|
47
|
+
Requires-Dist: xmlschema; extra == "dev"
|
|
48
48
|
|
|
49
49
|
.. image:: https://github.com/pytest-dev/pytest/raw/main/doc/en/img/pytest_logo_curves.svg
|
|
50
50
|
:target: https://docs.pytest.org/en/stable/
|
|
@@ -25,6 +25,7 @@ The current list of contributors receiving funding are:
|
|
|
25
25
|
|
|
26
26
|
* `@nicoddemus`_
|
|
27
27
|
* `@The-Compiler`_
|
|
28
|
+
* `@RonnyPfannschmidt`_
|
|
28
29
|
|
|
29
30
|
Contributors interested in receiving a part of the funds just need to submit a PR adding their
|
|
30
31
|
name to the list. Contributors that want to stop receiving the funds should also submit a PR
|
|
@@ -56,3 +57,4 @@ funds. Just drop a line to one of the `@pytest-dev/tidelift-admins`_ or use the
|
|
|
56
57
|
|
|
57
58
|
.. _`@nicoddemus`: https://github.com/nicoddemus
|
|
58
59
|
.. _`@The-Compiler`: https://github.com/The-Compiler
|
|
60
|
+
.. _`@RonnyPfannschmidt`: https://github.com/RonnyPfannschmidt
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
pytest-8.2.0
|
|
2
|
+
=======================================
|
|
3
|
+
|
|
4
|
+
The pytest team is proud to announce the 8.2.0 release!
|
|
5
|
+
|
|
6
|
+
This release contains new features, improvements, and bug fixes,
|
|
7
|
+
the full list of changes is available in the changelog:
|
|
8
|
+
|
|
9
|
+
https://docs.pytest.org/en/stable/changelog.html
|
|
10
|
+
|
|
11
|
+
For complete documentation, please visit:
|
|
12
|
+
|
|
13
|
+
https://docs.pytest.org/en/stable/
|
|
14
|
+
|
|
15
|
+
As usual, you can upgrade from PyPI via:
|
|
16
|
+
|
|
17
|
+
pip install -U pytest
|
|
18
|
+
|
|
19
|
+
Thanks to all of the contributors to this release:
|
|
20
|
+
|
|
21
|
+
* Bruno Oliveira
|
|
22
|
+
* Daniel Miller
|
|
23
|
+
* Florian Bruhin
|
|
24
|
+
* HolyMagician03-UMich
|
|
25
|
+
* John Litborn
|
|
26
|
+
* Levon Saldamli
|
|
27
|
+
* Linghao Zhang
|
|
28
|
+
* Manuel López-Ibáñez
|
|
29
|
+
* Pierre Sassoulas
|
|
30
|
+
* Ran Benita
|
|
31
|
+
* Ronny Pfannschmidt
|
|
32
|
+
* Sebastian Meyer
|
|
33
|
+
* Shekhar verma
|
|
34
|
+
* Tamir Duberstein
|
|
35
|
+
* Tobias Stoeckmann
|
|
36
|
+
* dj
|
|
37
|
+
* jakkdl
|
|
38
|
+
* poulami-sau
|
|
39
|
+
* tserg
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
Happy testing,
|
|
43
|
+
The pytest Development Team
|
|
@@ -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:542
|
|
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:1003
|
|
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()``
|
|
@@ -50,7 +50,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
50
50
|
captured = capsysbinary.readouterr()
|
|
51
51
|
assert captured.out == b"hello\n"
|
|
52
52
|
|
|
53
|
-
capfd -- .../_pytest/capture.py:
|
|
53
|
+
capfd -- .../_pytest/capture.py:1030
|
|
54
54
|
Enable text capturing of writes to file descriptors ``1`` and ``2``.
|
|
55
55
|
|
|
56
56
|
The captured output is made available via ``capfd.readouterr()`` method
|
|
@@ -67,7 +67,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
67
67
|
captured = capfd.readouterr()
|
|
68
68
|
assert captured.out == "hello\n"
|
|
69
69
|
|
|
70
|
-
capfdbinary -- .../_pytest/capture.py:
|
|
70
|
+
capfdbinary -- .../_pytest/capture.py:1057
|
|
71
71
|
Enable bytes capturing of writes to file descriptors ``1`` and ``2``.
|
|
72
72
|
|
|
73
73
|
The captured output is made available via ``capfd.readouterr()`` method
|
|
@@ -84,7 +84,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
84
84
|
captured = capfdbinary.readouterr()
|
|
85
85
|
assert captured.out == b"hello\n"
|
|
86
86
|
|
|
87
|
-
capsys -- .../_pytest/capture.py:
|
|
87
|
+
capsys -- .../_pytest/capture.py:976
|
|
88
88
|
Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
|
89
89
|
|
|
90
90
|
The captured output is made available via ``capsys.readouterr()`` method
|
|
@@ -101,7 +101,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
101
101
|
captured = capsys.readouterr()
|
|
102
102
|
assert captured.out == "hello\n"
|
|
103
103
|
|
|
104
|
-
doctest_namespace [session scope] -- .../_pytest/doctest.py:
|
|
104
|
+
doctest_namespace [session scope] -- .../_pytest/doctest.py:738
|
|
105
105
|
Fixture that returns a :py:class:`dict` that will be injected into the
|
|
106
106
|
namespace of doctests.
|
|
107
107
|
|
|
@@ -115,7 +115,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
115
115
|
|
|
116
116
|
For more details: :ref:`doctest_namespace`.
|
|
117
117
|
|
|
118
|
-
pytestconfig [session scope] -- .../_pytest/fixtures.py:
|
|
118
|
+
pytestconfig [session scope] -- .../_pytest/fixtures.py:1335
|
|
119
119
|
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
|
120
120
|
object.
|
|
121
121
|
|
|
@@ -125,7 +125,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
125
125
|
if pytestconfig.getoption("verbose") > 0:
|
|
126
126
|
...
|
|
127
127
|
|
|
128
|
-
record_property -- .../_pytest/junitxml.py:
|
|
128
|
+
record_property -- .../_pytest/junitxml.py:284
|
|
129
129
|
Add extra properties to the calling test.
|
|
130
130
|
|
|
131
131
|
User properties become part of the test report and are available to the
|
|
@@ -139,13 +139,13 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
139
139
|
def test_function(record_property):
|
|
140
140
|
record_property("example_key", 1)
|
|
141
141
|
|
|
142
|
-
record_xml_attribute -- .../_pytest/junitxml.py:
|
|
142
|
+
record_xml_attribute -- .../_pytest/junitxml.py:307
|
|
143
143
|
Add extra xml attributes to the tag for the calling test.
|
|
144
144
|
|
|
145
145
|
The fixture is callable with ``name, value``. The value is
|
|
146
146
|
automatically XML-encoded.
|
|
147
147
|
|
|
148
|
-
record_testsuite_property [session scope] -- .../_pytest/junitxml.py:
|
|
148
|
+
record_testsuite_property [session scope] -- .../_pytest/junitxml.py:345
|
|
149
149
|
Record a new ``<property>`` tag as child of the root ``<testsuite>``.
|
|
150
150
|
|
|
151
151
|
This is suitable to writing global information regarding the entire test
|
|
@@ -192,7 +192,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
192
192
|
|
|
193
193
|
.. _legacy_path: https://py.readthedocs.io/en/latest/path.html
|
|
194
194
|
|
|
195
|
-
caplog -- .../_pytest/logging.py:
|
|
195
|
+
caplog -- .../_pytest/logging.py:602
|
|
196
196
|
Access and control log capturing.
|
|
197
197
|
|
|
198
198
|
Captured logs are available through the following properties/methods::
|
|
@@ -203,7 +203,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
203
203
|
* caplog.record_tuples -> list of (logger_name, level, message) tuples
|
|
204
204
|
* caplog.clear() -> clear captured records and formatted log output string
|
|
205
205
|
|
|
206
|
-
monkeypatch -- .../_pytest/monkeypatch.py:
|
|
206
|
+
monkeypatch -- .../_pytest/monkeypatch.py:33
|
|
207
207
|
A convenient fixture for monkey-patching.
|
|
208
208
|
|
|
209
209
|
The fixture provides these methods to modify objects, dictionaries, or
|
|
@@ -227,16 +227,16 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
|
|
227
227
|
To undo modifications done by the fixture in a contained scope,
|
|
228
228
|
use :meth:`context() <pytest.MonkeyPatch.context>`.
|
|
229
229
|
|
|
230
|
-
recwarn -- .../_pytest/recwarn.py:
|
|
230
|
+
recwarn -- .../_pytest/recwarn.py:32
|
|
231
231
|
Return a :class:`WarningsRecorder` instance that records all warnings emitted by test functions.
|
|
232
232
|
|
|
233
233
|
See https://docs.pytest.org/en/latest/how-to/capture-warnings.html for information
|
|
234
234
|
on warning categories.
|
|
235
235
|
|
|
236
|
-
tmp_path_factory [session scope] -- .../_pytest/tmpdir.py:
|
|
236
|
+
tmp_path_factory [session scope] -- .../_pytest/tmpdir.py:242
|
|
237
237
|
Return a :class:`pytest.TempPathFactory` instance for the test session.
|
|
238
238
|
|
|
239
|
-
tmp_path -- .../_pytest/tmpdir.py:
|
|
239
|
+
tmp_path -- .../_pytest/tmpdir.py:257
|
|
240
240
|
Return a temporary directory path object which is unique to each test
|
|
241
241
|
function invocation, created as a sub directory of the base temporary
|
|
242
242
|
directory.
|
|
@@ -28,6 +28,87 @@ with advance notice in the **Deprecations** section of releases.
|
|
|
28
28
|
|
|
29
29
|
.. towncrier release notes start
|
|
30
30
|
|
|
31
|
+
pytest 8.2.0 (2024-04-27)
|
|
32
|
+
=========================
|
|
33
|
+
|
|
34
|
+
Deprecations
|
|
35
|
+
------------
|
|
36
|
+
|
|
37
|
+
- `#12069 <https://github.com/pytest-dev/pytest/issues/12069>`_: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated ``py.path.local`` parameter instead of the ``pathlib.Path`` parameter which replaced it:
|
|
38
|
+
|
|
39
|
+
- :hook:`pytest_ignore_collect` - the ``path`` parameter - use ``collection_path`` instead.
|
|
40
|
+
- :hook:`pytest_collect_file` - the ``path`` parameter - use ``file_path`` instead.
|
|
41
|
+
- :hook:`pytest_pycollect_makemodule` - the ``path`` parameter - use ``module_path`` instead.
|
|
42
|
+
- :hook:`pytest_report_header` - the ``startdir`` parameter - use ``start_path`` instead.
|
|
43
|
+
- :hook:`pytest_report_collectionfinish` - the ``startdir`` parameter - use ``start_path`` instead.
|
|
44
|
+
|
|
45
|
+
The replacement parameters are available since pytest 7.0.0.
|
|
46
|
+
The old parameters will be removed in pytest 9.0.0.
|
|
47
|
+
|
|
48
|
+
See :ref:`legacy-path-hooks-deprecated` for more details.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Features
|
|
53
|
+
--------
|
|
54
|
+
|
|
55
|
+
- `#11871 <https://github.com/pytest-dev/pytest/issues/11871>`_: Added support for reading command line arguments from a file using the prefix character ``@``, like e.g.: ``pytest @tests.txt``. The file must have one argument per line.
|
|
56
|
+
|
|
57
|
+
See :ref:`Read arguments from file <args-from-file>` for details.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
Improvements
|
|
62
|
+
------------
|
|
63
|
+
|
|
64
|
+
- `#11523 <https://github.com/pytest-dev/pytest/issues/11523>`_: :func:`pytest.importorskip` will now issue a warning if the module could be found, but raised :class:`ImportError` instead of :class:`ModuleNotFoundError`.
|
|
65
|
+
|
|
66
|
+
The warning can be suppressed by passing ``exc_type=ImportError`` to :func:`pytest.importorskip`.
|
|
67
|
+
|
|
68
|
+
See :ref:`import-or-skip-import-error` for details.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
- `#11728 <https://github.com/pytest-dev/pytest/issues/11728>`_: For ``unittest``-based tests, exceptions during class cleanup (as raised by functions registered with :meth:`TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>`) are now reported instead of silently failing.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
- `#11777 <https://github.com/pytest-dev/pytest/issues/11777>`_: Text is no longer truncated in the ``short test summary info`` section when ``-vv`` is given.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
- `#12112 <https://github.com/pytest-dev/pytest/issues/12112>`_: Improved namespace packages detection when :confval:`consider_namespace_packages` is enabled, covering more situations (like editable installs).
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
- `#9502 <https://github.com/pytest-dev/pytest/issues/9502>`_: Added :envvar:`PYTEST_VERSION` environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of ``pytest.__version__``, and among other things can be used to easily check if code is running from within a pytest run.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
Bug Fixes
|
|
85
|
+
---------
|
|
86
|
+
|
|
87
|
+
- `#12065 <https://github.com/pytest-dev/pytest/issues/12065>`_: Fixed a regression in pytest 8.0.0 where test classes containing ``setup_method`` and tests using ``@staticmethod`` or ``@classmethod`` would crash with ``AttributeError: 'NoneType' object has no attribute 'setup_method'``.
|
|
88
|
+
|
|
89
|
+
Now the :attr:`request.instance <pytest.FixtureRequest.instance>` attribute of tests using ``@staticmethod`` and ``@classmethod`` is no longer ``None``, but a fresh instance of the class, like in non-static methods.
|
|
90
|
+
Previously it was ``None``, and all fixtures of such tests would share a single ``self``.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
- `#12135 <https://github.com/pytest-dev/pytest/issues/12135>`_: Fixed issue where fixtures adding their finalizer multiple times to fixtures they request would cause unreliable and non-intuitive teardown ordering in some instances.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
- `#12194 <https://github.com/pytest-dev/pytest/issues/12194>`_: Fixed a bug with ``--importmode=importlib`` and ``--doctest-modules`` where child modules did not appear as attributes in parent modules.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
- `#1489 <https://github.com/pytest-dev/pytest/issues/1489>`_: Fixed some instances where teardown of higher-scoped fixtures was not happening in the reverse order they were initialized in.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
Trivial/Internal Changes
|
|
104
|
+
------------------------
|
|
105
|
+
|
|
106
|
+
- `#12069 <https://github.com/pytest-dev/pytest/issues/12069>`_: ``pluggy>=1.5.0`` is now required.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
- `#12167 <https://github.com/pytest-dev/pytest/issues/12167>`_: :ref:`cache <cache>`: create supporting files (``CACHEDIR.TAG``, ``.gitignore``, etc.) in a temporary directory to provide atomic semantics.
|
|
110
|
+
|
|
111
|
+
|
|
31
112
|
pytest 8.1.2 (2024-04-26)
|
|
32
113
|
=========================
|
|
33
114
|
|
|
@@ -19,6 +19,41 @@ Below is a complete list of all pytest features which are considered deprecated.
|
|
|
19
19
|
:class:`~pytest.PytestWarning` or subclasses, which can be filtered using :ref:`standard warning filters <warnings>`.
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
.. _import-or-skip-import-error:
|
|
23
|
+
|
|
24
|
+
``pytest.importorskip`` default behavior regarding :class:`ImportError`
|
|
25
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
26
|
+
|
|
27
|
+
.. deprecated:: 8.2
|
|
28
|
+
|
|
29
|
+
Traditionally :func:`pytest.importorskip` will capture :class:`ImportError`, with the original intent being to skip
|
|
30
|
+
tests where a dependent module is not installed, for example testing with different dependencies.
|
|
31
|
+
|
|
32
|
+
However some packages might be installed in the system, but are not importable due to
|
|
33
|
+
some other issue, for example, a compilation error or a broken installation. In those cases :func:`pytest.importorskip`
|
|
34
|
+
would still silently skip the test, but more often than not users would like to see the unexpected
|
|
35
|
+
error so the underlying issue can be fixed.
|
|
36
|
+
|
|
37
|
+
In ``8.2`` the ``exc_type`` parameter has been added, giving users the ability of passing :class:`ModuleNotFoundError`
|
|
38
|
+
to skip tests only if the module cannot really be found, and not because of some other error.
|
|
39
|
+
|
|
40
|
+
Catching only :class:`ModuleNotFoundError` by default (and letting other errors propagate) would be the best solution,
|
|
41
|
+
however for backward compatibility, pytest will keep the existing behavior but raise an warning if:
|
|
42
|
+
|
|
43
|
+
1. The captured exception is of type :class:`ImportError`, and:
|
|
44
|
+
2. The user does not pass ``exc_type`` explicitly.
|
|
45
|
+
|
|
46
|
+
If the import attempt raises :class:`ModuleNotFoundError` (the usual case), then the module is skipped and no
|
|
47
|
+
warning is emitted.
|
|
48
|
+
|
|
49
|
+
This way, the usual cases will keep working the same way, while unexpected errors will now issue a warning, with
|
|
50
|
+
users being able to supress the warning by passing ``exc_type=ImportError`` explicitly.
|
|
51
|
+
|
|
52
|
+
In ``9.0``, the warning will turn into an error, and in ``9.1`` :func:`pytest.importorskip` will only capture
|
|
53
|
+
:class:`ModuleNotFoundError` by default and no warnings will be issued anymore -- but users can still capture
|
|
54
|
+
:class:`ImportError` by passing it to ``exc_type``.
|
|
55
|
+
|
|
56
|
+
|
|
22
57
|
.. _node-ctor-fspath-deprecation:
|
|
23
58
|
|
|
24
59
|
``fspath`` argument for Node constructors replaced with ``pathlib.Path``
|
|
@@ -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-198>
|
|
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-198>
|
|
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-198>
|
|
322
322
|
<Module test_backends.py>
|
|
323
323
|
<Function test_db_initialized[d1]>
|
|
324
324
|
<Function test_db_initialized[d2]>
|
|
@@ -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-199>
|
|
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-199>
|
|
219
219
|
<Dir CWD>
|
|
220
220
|
<Module pythoncollection.py>
|
|
221
221
|
<Function test_function>
|
|
@@ -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-217>
|
|
1422
1422
|
<Module test_anothersmtp.py>
|
|
1423
1423
|
<Function test_showhelo[smtp.gmail.com]>
|
|
1424
1424
|
<Function test_showhelo[mail.python.org]>
|
|
@@ -294,9 +294,47 @@ Now if we increase verbosity even more:
|
|
|
294
294
|
|
|
295
295
|
test_verbosity_example.py:19: AssertionError
|
|
296
296
|
========================= short test summary info ==========================
|
|
297
|
-
FAILED test_verbosity_example.py::test_words_fail - AssertionError:
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
FAILED test_verbosity_example.py::test_words_fail - AssertionError: assert ['banana', 'apple', 'grapes', 'melon', 'kiwi'] == ['banana', 'apple', 'orange', 'melon', 'kiwi']
|
|
298
|
+
|
|
299
|
+
At index 2 diff: 'grapes' != 'orange'
|
|
300
|
+
|
|
301
|
+
Full diff:
|
|
302
|
+
[
|
|
303
|
+
'banana',
|
|
304
|
+
'apple',
|
|
305
|
+
- 'orange',
|
|
306
|
+
? ^ ^^
|
|
307
|
+
+ 'grapes',
|
|
308
|
+
? ^ ^ +
|
|
309
|
+
'melon',
|
|
310
|
+
'kiwi',
|
|
311
|
+
]
|
|
312
|
+
FAILED test_verbosity_example.py::test_numbers_fail - AssertionError: assert {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4} == {'0': 0, '10': 10, '20': 20, '30': 30, '40': 40}
|
|
313
|
+
|
|
314
|
+
Common items:
|
|
315
|
+
{'0': 0}
|
|
316
|
+
Left contains 4 more items:
|
|
317
|
+
{'1': 1, '2': 2, '3': 3, '4': 4}
|
|
318
|
+
Right contains 4 more items:
|
|
319
|
+
{'10': 10, '20': 20, '30': 30, '40': 40}
|
|
320
|
+
|
|
321
|
+
Full diff:
|
|
322
|
+
{
|
|
323
|
+
'0': 0,
|
|
324
|
+
- '10': 10,
|
|
325
|
+
? - -
|
|
326
|
+
+ '1': 1,
|
|
327
|
+
- '20': 20,
|
|
328
|
+
? - -
|
|
329
|
+
+ '2': 2,
|
|
330
|
+
- '30': 30,
|
|
331
|
+
? - -
|
|
332
|
+
+ '3': 3,
|
|
333
|
+
- '40': 40,
|
|
334
|
+
? - -
|
|
335
|
+
+ '4': 4,
|
|
336
|
+
}
|
|
337
|
+
FAILED test_verbosity_example.py::test_long_text_fail - AssertionError: assert 'hello world' in 'Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet '
|
|
300
338
|
======================= 3 failed, 1 passed in 0.12s ========================
|
|
301
339
|
|
|
302
340
|
Notice now that:
|