This release is not a usual bug fix release -- it contains features and improvements, being a follow up
to 8.1.0, which has been yanked from PyPI.
:::
Features
#11475: Added the new consider_namespace_packages{.interpreted-text role="confval"} configuration option, defaulting to False.
If set to True, pytest will attempt to identify modules that are part of namespace packages when importing modules.
#11653: Added the new verbosity_test_cases{.interpreted-text role="confval"} configuration option for fine-grained control of test execution verbosity.
See Fine-grained verbosity <pytest.fine_grained_verbosity>{.interpreted-text role="ref"} for more details.
Improvements
#10865: pytest.warns{.interpreted-text role="func"} now validates that warnings.warn{.interpreted-text role="func"} was called with a [str]{.title-ref} or a [Warning]{.title-ref}.
Currently in Python it is possible to use other types, however this causes an exception when warnings.filterwarnings{.interpreted-text role="func"} is used to filter those warnings (see [CPython #103577](python/cpython#103577) for a discussion).
While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.
#11311: When using --override-ini for paths in invocations without a configuration file defined, the current working directory is used
as the relative directory.
Previoulsy this would raise an AssertionError{.interpreted-text role="class"}.
#11475: --import-mode=importlib <import-mode-importlib>{.interpreted-text role="ref"} now tries to import modules using the standard import mechanism (but still without changing :pysys.path{.interpreted-text role="data"}), falling back to importing modules directly only if that fails.
This means that installed packages will be imported under their canonical name if possible first, for example app.core.models, instead of having the module name always be derived from their path (for example .env310.lib.site_packages.app.core.models).
#11801: Added the iter_parents() <_pytest.nodes.Node.iter_parents>{.interpreted-text role="func"} helper method on nodes.
It is similar to listchain <_pytest.nodes.Node.listchain>{.interpreted-text role="func"}, but goes from bottom to top, and returns an iterator, not a list.
#11850: Added support for sys.last_exc{.interpreted-text role="data"} for post-mortem debugging on Python>=3.12.
#11962: In case no other suitable candidates for configuration file are found, a pyproject.toml (even without a [tool.pytest.ini_options] table) will be considered as the configuration file and define the rootdir.
#11978: Add --log-file-mode option to the logging plugin, enabling appending to log-files. This option accepts either "w" or "a" and defaults to "w".
Previously, the mode was hard-coded to be "w" which truncates the file before logging.
The library provides useful fixtures for creation test aiohttp server and client.
Installation
.. code-block:: console
$ pip install pytest-aiohttp
Add asyncio_mode = auto line to pytest configuration <https://docs.pytest.org/en/latest/customize.html>_ (see pytest-asyncio modes <https://github.com/pytest-dev/pytest-asyncio#modes>_ for details). The plugin works
with strict mode also.
Usage
Write tests in pytest-asyncio <https://github.com/pytest-dev/pytest-asyncio>_ style
using provided fixtures for aiohttp test server and client creation. The plugin provides
resources cleanup out-of-the-box.
This release is a milestone: it fixes Black's first CVE security vulnerability. If you
run Black on untrusted input, or if you habitually put thousands of leading tab
characters in your docstrings, you are strongly encouraged to upgrade immediately to fix
CVE-2024-21503.
This release also fixes a bug in Black's AST safety check that allowed Black to make
incorrect changes to certain f-strings that are valid in Python 3.12 and higher.
Stable style
Don't move comments along with delimiters, which could cause crashes (#4248)
Strengthen AST safety check to catch more unsafe changes to strings. Previous versions
of Black would incorrectly format the contents of certain unusual f-strings containing
nested strings with the same quote type. Now, Black will crash on such strings until
support for the new f-string syntax is implemented. (#4270)
Fix a bug where line-ranges exceeding the last code line would not work as expected
(#4273)
Performance
Fix catastrophic performance on docstrings that contain large numbers of leading tab
characters. This fixes
CVE-2024-21503.
(#4278)
Documentation
Note what happens when --check is used with --quiet (#4236)
24.2.0
Stable style
Fixed a bug where comments where mistakenly removed along with redundant parentheses
(#4218)
Preview style
Move the hug_parens_with_braces_and_square_brackets feature to the unstable style
due to an outstanding crash and proposed formatting tweaks (#4198)
Fixed a bug where base expressions caused inconsistent formatting of ** in tenary
expression (#4154)
Checking for newline before adding one on docstring that is almost at the line limit
(#4185)
Remove redundant parentheses in case statement if guards (#4214).
This release is a milestone: it fixes Black's first CVE security vulnerability. If you
run Black on untrusted input, or if you habitually put thousands of leading tab
characters in your docstrings, you are strongly encouraged to upgrade immediately to fix
CVE-2024-21503.
This release also fixes a bug in Black's AST safety check that allowed Black to make
incorrect changes to certain f-strings that are valid in Python 3.12 and higher.
Stable style
Don't move comments along with delimiters, which could cause crashes (#4248)
Strengthen AST safety check to catch more unsafe changes to strings. Previous versions
of Black would incorrectly format the contents of certain unusual f-strings containing
nested strings with the same quote type. Now, Black will crash on such strings until
support for the new f-string syntax is implemented. (#4270)
Fix a bug where line-ranges exceeding the last code line would not work as expected
(#4273)
Performance
Fix catastrophic performance on docstrings that contain large numbers of leading tab
characters. This fixes
CVE-2024-21503.
(#4278)
Documentation
Note what happens when --check is used with --quiet (#4236)
24.2.0
Stable style
Fixed a bug where comments where mistakenly removed along with redundant parentheses
(#4218)
Preview style
Move the hug_parens_with_braces_and_square_brackets feature to the unstable style
due to an outstanding crash and proposed formatting tweaks (#4198)
Fixed a bug where base expressions caused inconsistent formatting of ** in tenary
expression (#4154)
Checking for newline before adding one on docstring that is almost at the line limit
(#4185)
Remove redundant parentheses in case statement if guards (#4214).
Explicitly use encoding="locale" for .pth files whenever possible,
to reduce EncodingWarnings.
This avoid errors with UTF-8 (see discussion in python/cpython#77102). (#4265)
Bugfixes
Clarify some pkg_resources methods return bytes, not str. Also return an empty bytes in EmptyProvider._get -- by :user:Avasam (#4243)
Return an empty list by default in pkg_resources.ResourceManager.cleanup_resources -- by :user:Avasam (#4244)
Made pkg_resoursces.NullProvider's has_metadata and metadata_isdir methods return actual booleans like all other Providers. -- by :user:Avasam (#4254)
Use email.message instead of cgi as cgi has been deprecated ([#969](https://github.com/pypa/twine/issues/969) <https://github.com/pypa/twine/issues/969>_)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the packages group with 11 updates:
7.4.0
8.1.1
1.0.4
1.0.5
6.0.0
6.0.1
5.12.0
5.13.2
6.1.0
7.0.0
1.1.320
1.1.356
23.7.0
24.3.0
0.28.0
0.29.0
68.0.0
69.2.0
0.41.1
0.43.0
4.0.2
5.0.0
Updates
pytest
from 7.4.0 to 8.1.1Release notes
Sourced from pytest's releases.
... (truncated)
Commits
81653ee
Adjust changelog manually for 8.1.1e60b4b9
Prepare release version 8.1.115fbe57
[8.1.x] Revert legacy path removals (#12093)86c3aab
[8.1.x] Do not import duplicated modules with --importmode=importlib (#12077)5b82b0c
[8.1.x] Yank version 8.1.0 (#12076)0a53681
Merge pull request #12054 from pytest-dev/release-8.1.0b9a167f
Prepare release version 8.1.000043f7
Merge pull request #12038 from bluetech/fixtures-rm-arg2indexf4e1025
Merge pull request #12048 from bluetech/fixture-teardown-excgroup43492f5
Merge pull request #12051 from jakkdl/test_debugging_pythonbreakpointUpdates
pytest-aiohttp
from 1.0.4 to 1.0.5Release notes
Sourced from pytest-aiohttp's releases.
... (truncated)
Changelog
Sourced from pytest-aiohttp's changelog.
Commits
74b6faf
Release 1.0.521112c0
[pre-commit.ci] pre-commit autoupdate (#51)e8c8cfd
[pre-commit.ci] pre-commit autoupdate (#45)49d9b35
Add CodeQL workflow for GitHub code scanning (#46)a6a2533
Usepytest.hookimpl
inpytest_configure
(#49)9aea81e
Update check-jsonschema URL and version (#48)a2c68a8
[pre-commit.ci] pre-commit autoupdate (#44)74afa87
[pre-commit.ci] pre-commit autoupdate (#42)fca6a97
[pre-commit.ci] pre-commit autoupdate (#41)a4218fa
[pre-commit.ci] pre-commit autoupdate (#39)Updates
pytest-runner
from 6.0.0 to 6.0.1Changelog
Sourced from pytest-runner's changelog.
Commits
9d13da8
Update changelog1898992
Merge pull request #62 from pytest-dev/RonnyPfannschmidt-devstatusd9d2ec5
update development status to inactiveUpdates
isort
from 5.12.0 to 5.13.2Release notes
Sourced from isort's releases.
... (truncated)
Changelog
Sourced from isort's changelog.
Commits
c655831
Merge pull request #2214 from PyCQA/version/5.13.2b4335b4
Prepare version 5.13.2c36e43c
Merge pull request #2184 from bp72/issue/2154e38702f
Merge pull request #2213 from davidculley/confine-precommit-to-stagesee8d87f
Add fix for the error found by hypothesis5849ec2
Apply the bracket fix from issue 471 only for use_parentheses=Truedf0e119
confine pre-commit to stages9255bca
Merge pull request #2212 from PyCQA/bugfix/#2211-colors-extra5336d7d
Fix colors extras643d9c4
Merge pull request #2210 from PyCQA/version/5.13.1Updates
flake8
from 6.1.0 to 7.0.0Commits
88a4f9b
Release 7.0.06f3a60d
Merge pull request #1906 from PyCQA/upgrade-pyflakescde8570
upgrade pyflakes to 3.2.x2ab9d76
Merge pull request #1903 from PyCQA/pre-commit-ci-update-confige27611f
[pre-commit.ci] pre-commit autoupdate9d20be1
Merge pull request #1902 from PyCQA/pre-commit-ci-update-config06c1503
[pre-commit.ci] auto fixes from pre-commit.com hooksb67ce03
Fix bugbear lintsc8801c1
[pre-commit.ci] pre-commit autoupdate045f297
Merge pull request #1893 from PyCQA/pre-commit-ci-update-configUpdates
pyright
from 1.1.320 to 1.1.356Commits
3c598b3
Pyright NPM Package update to 1.1.356 (#257)27a9fea
Pyright NPM Package update to 1.1.355 (#256)3b04c54
[pyright updated to 1.1.354] Update Version (#255)ba2747b
Pyright NPM Package update to 1.1.353 (#253)1b36e5d
Pyright NPM Package update to 1.1.35247b23ec
Drop support for node.js v12fbe3722
Pyright NPM Package update to 1.1.351 (#251)2831f3c
Pyright NPM Package update to 1.1.350 (#250)587e3f9
Pyright NPM Package update to 1.1.349 (#248)9dc9813
[pyright updated to 1.1.348] Update Version (#247)Updates
black
from 23.7.0 to 24.3.0Release notes
Sourced from black's releases.
... (truncated)
Changelog
Sourced from black's changelog.
... (truncated)
Commits
552baf8
Prepare release 24.3.0 (#4279)f000936
Fix catastrophic performance in lines_with_leading_tabs_expanded() (#4278)7b5a657
Fix --line-ranges behavior when ranges are at EOF (#4273)1abcffc
Use regex where we ignore case on windows (#4252)719e674
Fix 4227: Improve documentation for --quiet --check (#4236)e5510af
update plugin url for Thonny (#4259)6af7d11
Fix AST safety check false negative (#4270)f03ee11
Ensureblib2to3.pygram
is initialized before use (#4224)e4bfedb
fix: Don't move comments while splitting delimiters (#4248)d0287e1
Make trailing comma logic more concise (#4202)Updates
asyncpg
from 0.28.0 to 0.29.0Release notes
Sourced from asyncpg's releases.
... (truncated)
Commits
74f3a00
asyncpg v0.29.0d7faaff
fix: allow host tuple (#1021)b2697ff
Add query logging callbacks and context manager (#1043)93a6f79
Cut BaseProtocol circular reference on close. (#1049)ca9f03b
Close cursor portals once the iterator is exhausted (#1088)b7ffab6
Add support for theWHERE
clause incopy_to
methods (#941)70c8bd8
Use cleanup_ctx in pool usage doc (#878)ccc7baf
Small fix for documentation on using SSL in Connection (#995)313b2b2
Use thetimeout
context manager in the connection path (#1087)8b45beb
Update automatic PostGIS type conversion for Shapely 2.0 (#1085)Updates
setuptools
from 68.0.0 to 69.2.0Changelog
Sourced from setuptools's changelog.
... (truncated)
Commits
6ee23bf
Bump version: 69.1.1 → 69.2.035df7d0
Update upload-artefact action to v3 (#4274)50f0459
Update .github/workflows/ci-sage.ymlc9e6b2a
Update upload-artefact action to v49156fc0
Update cygwin-install-action to v4 (#4269)e0cb8e8
Update cygwin-install-action0badbf5
Update checkout action to v4 (#4272)fe64b70
Update setup-python action to v5 (#4271)b40a70b
Merge branch 'main' into update-setup-python-actionc3dc91e
CI: Update cache action to v4 (#4275)Updates
wheel
from 0.41.1 to 0.43.0Release notes
Sourced from wheel's releases.
Changelog
Sourced from wheel's changelog.
... (truncated)
Commits
fa33dfd
Created a new releaseb2c8272
Removed PyPy + Windows from the test matrix for nowdedcc19
Worked around a bizarre PyPy+Windows issue with bdist_eggfa480d6
Added Codecov.io token to the test workflow1280f03
Skip the test_platform_linux32 test on non-Linux platforms0b4b259
Removed failing test codeb91b377
Fixed erroneous attribute access on thecapsys
fixture819baa3
Updated more GitHub actions and improved test workflow92921a0
Updated vendoredpackaging
to 24.0a9119c8
Updated GitHub actions to their latest versionsUpdates
twine
from 4.0.2 to 5.0.0Changelog
Sourced from twine's changelog.
Commits
94f810c
Merge pull request #1047 from pypa/new-release09d993a
Update linkcheck_ignore setting for docsab0ed19
Apply 2024 black format407e6cc
Build changelog for 5.0.06644b86
Add missing changelog entriesfe1885f
Merge pull request #1034 from DimitriPapadopoulos/codespell694bdcf
Fix typos found by codespell89ec78c
Merge pull request #1040 from woodruffw-forks/ww/pypi-mandatory-api-tokensb3b363a
tests: lintage6e94d20
tests: more non-PyPI testsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show