chore(deps): update all dependencies #2401
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==3.11.18
->==3.12.12
==5.5.2
->==6.0.0
==8.2.0
->==8.2.1
==1.6.0
->==1.7.0
==2.24.2
->==2.25.1
==2.40.1
->==2.40.3
==1.71.0
->==1.73.0
==1.7.0
->==1.8.1
==6.4.3
->==6.4.4
==0.3.1
->==0.3.2
==6.31.0
->==6.31.1
==8.3.5
->==8.4.0
==0.26.0
->==1.0.0
3.10
->3.13
==4.13.2
->==4.14.0
22.04
->24.04
==1.20.0
->==1.20.1
Release Notes
aio-libs/aiohttp (aiohttp)
v3.12.12
Compare Source
====================
Bug fixes
Fixed cookie unquoting to properly handle octal escape sequences in cookie values (e.g.,
\012
for newline) by vendoring the correct_unquote
implementation from Python'shttp.cookies
module -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11173
.Fixed
Cookie
header parsing to treat attribute names as regular cookies per :rfc:6265#section-5.4
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11178
.v3.12.11
Compare Source
====================
Features
Improved SSL connection handling by changing the default
ssl_shutdown_timeout
from
0.1
to0
seconds. SSL connections now use Python's default gracefulshutdown during normal operation but are aborted immediately when the connector
is closed, providing optimal behavior for both cases. Also added support for
ssl_shutdown_timeout=0
on all Python versions. Previously, this value wasrejected on Python 3.11+ and ignored on earlier versions. Non-zero values on
Python < 3.11 now trigger a
RuntimeWarning
-- by :user:bdraco
.The
ssl_shutdown_timeout
parameter is now deprecated and will be removed inaiohttp 4.0 as there is no clear use case for changing the default.
Related issues and pull requests on GitHub:
:issue:
11148
.Deprecations (removal in next major release)
Improved SSL connection handling by changing the default
ssl_shutdown_timeout
from
0.1
to0
seconds. SSL connections now use Python's default gracefulshutdown during normal operation but are aborted immediately when the connector
is closed, providing optimal behavior for both cases. Also added support for
ssl_shutdown_timeout=0
on all Python versions. Previously, this value wasrejected on Python 3.11+ and ignored on earlier versions. Non-zero values on
Python < 3.11 now trigger a
RuntimeWarning
-- by :user:bdraco
.The
ssl_shutdown_timeout
parameter is now deprecated and will be removed inaiohttp 4.0 as there is no clear use case for changing the default.
Related issues and pull requests on GitHub:
:issue:
11148
.v3.12.10
Compare Source
====================
Bug fixes
Fixed leak of
aiodns.DNSResolver
when :py:class:~aiohttp.TCPConnector
is closed and no resolver was passed when creating the connector -- by :user:Tasssadar
.This was a regression introduced in version 3.12.0 (:pr:
10897
).Related issues and pull requests on GitHub:
:issue:
11150
.v3.12.9
Compare Source
===================
Bug fixes
Fixed
IOBasePayload
andTextIOPayload
reading entire files into memory when streaming large files -- by :user:bdraco
.When using file-like objects with the aiohttp client, the entire file would be read into memory if the file size was provided in the
Content-Length
header. This could cause out-of-memory errors when uploading large files. The payload classes now correctly read data in chunks ofREAD_SIZE
(64KB) regardless of the total content length.Related issues and pull requests on GitHub:
:issue:
11138
.v3.12.8
Compare Source
===================
Features
Added preemptive digest authentication to :class:
~aiohttp.DigestAuthMiddleware
-- by :user:bdraco
.The middleware now reuses authentication credentials for subsequent requests to the same
protection space, improving efficiency by avoiding extra authentication round trips.
This behavior matches how web browsers handle digest authentication and follows
:rfc:
7616#section-3.6
.Preemptive authentication is enabled by default but can be disabled by passing
preemptive=False
to the middleware constructor.Related issues and pull requests on GitHub:
:issue:
11128
, :issue:11129
.v3.12.7
Compare Source
===================
Bug fixes
Fixed cookie parsing to be more lenient when handling cookies with special characters
in names or values. Cookies with characters like
{
,}
, and/
in names are nowaccepted instead of causing a :exc:
~http.cookies.CookieError
and 500 errors. Additionally,cookies with mismatched quotes in values are now parsed correctly, and quoted cookie
values are now handled consistently whether or not they include special attributes
like
Domain
. Also fixed :class:~aiohttp.CookieJar
to ensure shared cookies (domain="", path="")respect the
quote_cookie
parameter, making cookie quoting behavior consistent forall cookies -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
2683
, :issue:5397
, :issue:7993
, :issue:11112
.Fixed an issue where cookies with duplicate names but different domains or paths
were lost when updating the cookie jar. The :class:
~aiohttp.ClientSession
cookie jar now correctly stores all cookies even if they have the same name but
different domain or path, following the :rfc:
6265#section-5.3
storage model -- by :user:bdraco
.Note that :attr:
ClientResponse.cookies <aiohttp.ClientResponse.cookies>
returnsa :class:
~http.cookies.SimpleCookie
which uses the cookie name as a key, soonly the last cookie with each name is accessible via this interface. All cookies
can be accessed via :meth:
ClientResponse.headers.getall('Set-Cookie') <multidict.MultiDictProxy.getall>
if needed.Related issues and pull requests on GitHub:
:issue:
4486
, :issue:11105
, :issue:11106
.Miscellaneous internal changes
Avoided creating closed futures in
ResponseHandler
that will never be awaited -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11107
.Downgraded the logging level for connector close errors from ERROR to DEBUG, as these are expected behavior with TLS 1.3 connections -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
11114
.v3.12.6
Compare Source
===================
Bug fixes
Fixed spurious "Future exception was never retrieved" warnings for connection lost errors when the connector is not closed -- by :user:
bdraco
.When connections are lost, the exception is now marked as retrieved since it is always propagated through other means, preventing unnecessary warnings in logs.
Related issues and pull requests on GitHub:
:issue:
11100
.v3.12.4
Compare Source
===================
Bug fixes
Fixed connector not waiting for connections to close before returning from :meth:
~aiohttp.BaseConnector.close
(partial backport of :pr:3733
) -- by :user:atemate
and :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1925
, :issue:11074
.v3.12.3
Compare Source
===================
Bug fixes
Fixed memory leak in :py:meth:
~aiohttp.CookieJar.filter_cookies
that caused unbounded memory growthwhen making requests to different URL paths -- by :user:
bdraco
and :user:Cycloctane
.Related issues and pull requests on GitHub:
:issue:
11052
, :issue:11054
.v3.12.2
Compare Source
===================
Bug fixes
Fixed
Content-Length
header not being set to0
for non-GET requests withNone
body -- by :user:bdraco
.Non-GET requests (
POST
,PUT
,PATCH
,DELETE
) withNone
as the body now correctly set theContent-Length
header to0
, matching the behavior of requests with empty bytes (b""
). This regression was introduced in aiohttp 3.12.1.Related issues and pull requests on GitHub:
:issue:
11035
.v3.12.1
Compare Source
====================
Bug fixes
Fixed cookie unquoting to properly handle octal escape sequences in cookie values (e.g.,
\012
for newline) by vendoring the correct_unquote
implementation from Python'shttp.cookies
module -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11173
.Fixed
Cookie
header parsing to treat attribute names as regular cookies per :rfc:6265#section-5.4
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11178
.v3.12.0
Compare Source
===================
Bug fixes
Fixed :py:attr:
~aiohttp.web.WebSocketResponse.prepared
property to correctly reflect the prepared state, especially during timeout scenarios -- by :user:bdraco
Related issues and pull requests on GitHub:
:issue:
6009
, :issue:10988
.Response is now always True, instead of using MutableMapping behaviour (False when map is empty)
Related issues and pull requests on GitHub:
:issue:
10119
.Fixed connection reuse for file-like data payloads by ensuring buffer
truncation respects content-length boundaries and preventing premature
connection closure race -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10325
, :issue:10915
, :issue:10941
, :issue:10943
.Fixed pytest plugin to not use deprecated :py:mod:
asyncio
policy APIs.Related issues and pull requests on GitHub:
:issue:
10851
.Fixed :py:class:
~aiohttp.resolver.AsyncResolver
not using theloop
argument in versions 3.x where it should still be supported -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
10951
.Features
Added a comprehensive HTTP Digest Authentication client middleware (DigestAuthMiddleware)
that implements RFC 7616. The middleware supports all standard hash algorithms
(MD5, SHA, SHA-256, SHA-512) with session variants, handles both 'auth' and
'auth-int' quality of protection options, and automatically manages the
authentication flow by intercepting 401 responses and retrying with proper
credentials -- by :user:
feus4177
, :user:TimMenninger
, and :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
2213
, :issue:10725
.Added client middleware support -- by :user:
bdraco
and :user:Dreamsorcerer
.This change allows users to add middleware to the client session and requests, enabling features like
authentication, logging, and request/response modification without modifying the core
request logic. Additionally, the
session
attribute was added toClientRequest
,allowing middleware to access the session for making additional requests.
Related issues and pull requests on GitHub:
:issue:
9732
, :issue:10902
, :issue:10945
, :issue:10952
, :issue:10959
, :issue:10968
.Allow user setting zlib compression backend -- by :user:
TimMenninger
This change allows the user to call :func:
aiohttp.set_zlib_backend()
with thezlib compression module of their choice. Default behavior continues to use
the builtin
zlib
library.Related issues and pull requests on GitHub:
:issue:
9798
.Added support for overriding the base URL with an absolute one in client sessions
-- by :user:
vivodi
.Related issues and pull requests on GitHub:
:issue:
10074
.Added
host
parameter toaiohttp_server
fixture -- by :user:christianwbrock
.Related issues and pull requests on GitHub:
:issue:
10120
.Detect blocking calls in coroutines using BlockBuster -- by :user:
cbornet
.Related issues and pull requests on GitHub:
:issue:
10433
.Added
socket_factory
to :py:class:aiohttp.TCPConnector
to allow specifying custom socket options-- by :user:
TimMenninger
.Related issues and pull requests on GitHub:
:issue:
10474
, :issue:10520
, :issue:10961
, :issue:10962
.Started building armv7l manylinux wheels -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10797
.Implemented shared DNS resolver management to fix excessive resolver object creation
when using multiple client sessions. The new
_DNSResolverManager
singleton ensuresonly one
DNSResolver
object is created for default configurations, significantlyreducing resource usage and improving performance for applications using multiple
client sessions simultaneously -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10847
, :issue:10923
, :issue:10946
.Upgraded to LLHTTP 9.3.0 -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
10972
.Optimized small HTTP requests/responses by coalescing headers and body into a single TCP packet -- by :user:
bdraco
.This change enhances network efficiency by reducing the number of packets sent for small HTTP payloads, improving latency and reducing overhead. Most importantly, this fixes compatibility with memory-constrained IoT devices that can only perform a single read operation and expect HTTP requests in one packet. The optimization uses zero-copy
writelines
when coalescing data and works with both regular and chunked transfer encoding.When
aiohttp
uses client middleware to communicate with anaiohttp
server, connection reuse is more likely to occur since complete responses arrive in a single packet for small payloads.This aligns
aiohttp
with other popular HTTP clients that already coalesce small requests.Related issues and pull requests on GitHub:
:issue:
10991
.Improved documentation
Improved documentation for middleware by adding warnings and examples about
request body stream consumption. The documentation now clearly explains that
request body streams can only be read once and provides best practices for
sharing parsed request data between middleware and handlers -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
2914
.Packaging updates and notes for downstreams
Removed non SPDX-license description from
setup.cfg
-- by :user:devanshu-ziphq
.Related issues and pull requests on GitHub:
:issue:
10662
.Added support for building against system
llhttp
library -- by :user:mgorny
.This change adds support for :envvar:
AIOHTTP_USE_SYSTEM_DEPS
environment variable thatcan be used to build aiohttp against the system install of the
llhttp
library ratherthan the vendored one.
Related issues and pull requests on GitHub:
:issue:
10759
.aiodns
is now installed on Windows with speedups extra -- by :user:bdraco
.As of
aiodns
3.3.0,SelectorEventLoop
is no longer required when usingpycares
4.7.0 or later.Related issues and pull requests on GitHub:
:issue:
10823
.Fixed compatibility issue with Cython 3.1.1 -- by :user:
bdraco
Related issues and pull requests on GitHub:
:issue:
10877
.Contributor-facing changes
Sped up tests by disabling
blockbuster
fixture fortest_static_file_huge
andtest_static_file_huge_cancel
tests -- by :user:dikos1337
.Related issues and pull requests on GitHub:
:issue:
9705
, :issue:10761
.Updated tests to avoid using deprecated :py:mod:
asyncio
policy APIs andmake it compatible with Python 3.14.
Related issues and pull requests on GitHub:
:issue:
10851
.Added Winloop to test suite to support in the future -- by :user:
Vizonex
.Related issues and pull requests on GitHub:
:issue:
10922
.Miscellaneous internal changes
Added support for the
partitioned
attribute in theset_cookie
method.Related issues and pull requests on GitHub:
:issue:
9870
.Setting :attr:
aiohttp.web.StreamResponse.last_modified
to an unsupported type will now raise :exc:TypeError
instead of silently failing -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
10146
.tkem/cachetools (cachetools)
v6.0.0
Compare Source
===================
Require Python 3.9 or later (breaking change).
Remove
MRUCache
and the@func.mru_cache
decorator (breakingchange).
Add an optional
condition
parameter to the@cached
and@cachedmethod
decorators, which, when used with athreading.Condition
instance, should improvecache stampede <https://en.wikipedia.org/wiki/Cache_stampede>
_ issues in massivelyparallel environments. Note that this will inflict some performance
penalty, and therefore has to be enabled explicitly.
Convert the
cachetools.func
decorators to use athreading.Condition
instance to deal withcache stampede <https://en.wikipedia.org/wiki/Cache_stampede>
_ issues. Note thatthis may result in a noticable performance degradation, depending
on your actual use case.
Deprecate support for
cache(self)
returningNone
to suppresscaching with the
@cachedmethod
decorator.Improve documentation.
Update CI environment.
pallets/click (click)
v8.2.1
Compare Source
Released 2025-05-20
2894
:issue:
2897
:pr:2930
2906
:pr:2907
sys.stderr
at the end ofCliRunner.invoke
. :issue:2682
2787
aio-libs/frozenlist (frozenlist)
v1.7.0
Compare Source
======
(2025-06-09)
Features
Added deepcopy support to FrozenList -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
659
.Packaging updates and notes for downstreams
Fixed an issue where
frozenlist
binary wheels would be built with debugging symbols and line tracing enabled, which significantly impacted performance. Line tracing is now disabled by default and can only be enabled explicitly -- by :user:bdraco
.This change ensures that production builds are optimized for performance. Developers who need line tracing for debugging purposes can still enable it by:
FROZENLIST_CYTHON_TRACING
environment variable--config-setting=with-cython-tracing=true
option with pipRelated issues and pull requests on GitHub:
:issue:
660
.Enabled
PIP_CONSTRAINT
environment variable in the build configuration to ensure the pinned Cython version fromrequirements/cython.txt
is used during wheel builds.Related issues and pull requests on GitHub:
:issue:
661
.v1.6.2
Compare Source
======
(2025-06-03)
No significant changes.
v1.6.1
Compare Source
======
(2025-06-02)
Bug fixes
Correctly use
cimport
for includingPyBool_FromLong
-- by :user:lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
653
.Packaging updates and notes for downstreams
Exclude
_frozenlist.cpp
from bdists/wheels -- by :user:musicinmybrain
.Related issues and pull requests on GitHub:
:issue:
649
.Updated to use Cython 3.1 universally across the build path -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
654
.googleapis/python-api-core (google-api-core)
v2.25.1
Compare Source
Bug Fixes
v2.25.0
Compare Source
Features
x-goog-api-client
header (#812) (118bd96)Bug Fixes
googleapis/google-auth-library-python (google-auth)
v2.40.3
Compare Source
Bug Fixes
v2.40.2
Compare Source
Bug Fixes
grpc/grpc (grpcio)
v1.73.0
Compare Source
This is release 1.73.0 (gradient) of gRPC Core.
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
As of this version, gRPC on MacOS & iOS will utilize Abseil's synchronization features, aligning it with other platforms. Should you encounter any issues due to this update, you can disable it by enabling GPR_DISABLE_ABSEIL_SYNC. If you do this, please report any problems by filing a bug at https://github.com/grpc/grpc.
openssl
instead ofboringssl
. (#39188)C++
Python
.
in proto paths the same way as native Generator/PyiGenerator. (#39586)Ruby
v1.72.1
Compare Source
This is release gRPC Core 1.72.1 (gusto).
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Python
grpc.aio.*
).v1.72.0
Compare Source
This is release gRPC Core 1.72.0 (gusto).
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes.
Instagram/LibCST (libcst)
v1.8.1
Compare Source
Added
Updated
New Contributors
Full Changelog: Instagram/LibCST@v1.8.0...v1.8.1
v1.8.0
Compare Source
Added
Updated
New Contributors
Full Changelog: Instagram/LibCST@v1.7.0...v1.8.0
aio-libs/multidict (multidict)
v6.4.4
Compare Source
=====
(2025-05-19)
Bug fixes
Fixed a segmentation fault when calling :py:meth:
multidict.MultiDict.setdefault
with a single argument -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1160
.Fixed a segmentation fault when attempting to directly instantiate view objects
(
multidict._ItemsView
,multidict._KeysView
,multidict._ValuesView
) -- by :user:bdraco
.View objects now raise a proper :exc:
TypeError
with the message "cannot create '...' instances directly"when direct instantiation is attempted.
View objects should only be created through the proper methods: :py:meth:
multidict.MultiDict.items
,:py:meth:
multidict.MultiDict.keys
, and :py:meth:multidict.MultiDict.values
.Related issues and pull requests on GitHub:
:issue:
1164
.Miscellaneous internal changes
:class:
multidict.MultiDictProxy
was refactored to rely only on:class:
multidict.MultiDict
public interface and don't touch any implementationdetails.
Related issues and pull requests on GitHub:
:issue:
1150
.Multidict views were refactored to rely only on
:class:
multidict.MultiDict
API and don't touch any implementationdetails.
Related issues and pull requests on GitHub:
:issue:
1152
.Dropped internal
_Impl
class from pure Python implementation, both pure Python and CExtension follows the same design internally now.
Related issues and pull requests on GitHub:
:issue:
1153
.aio-libs/propcache (propcache)
v0.3.2
Compare Source
=====
(2025-06-09)
Improved documentation
Fixed incorrect decorator usage in the :func:
~propcache.api.under_cached_property
example code -- by :user:meanmail
.Related issues and pull requests on GitHub:
:issue:
109
.Packaging updates and notes for downstreams
Updated to use Cython 3.1 universally across the build path -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
117
.Made Cython line tracing opt-in via the
with-cython-tracing
build config setting -- by :user:bdraco
.Previously, line tracing was enabled by default in :file:
pyproject.toml
, which caused build issues for some users and made wheels nearly twice as slow.Now line tracing is only enabled when explicitly requested via
pip install . --config-setting=with-cython-tracing=true
or by setting thePROPCACHE_CYTHON_TRACING
environment variable.Related issues and pull requests on GitHub:
:issue:
118
.pytest-dev/pytest (pytest)
v8.4.0
Compare Source
pytest 8.4.0 (2025-06-02)
Removals and backward incompatible breaking changes
#11372: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.
#12346: Tests will now fail, instead of raising a warning, if they return any value other than None.
#12874: We dropped support for Python 3.8 following its end of life (2024-10-07).
#12960: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.
See
the docs <yield tests deprecated>
{.interpreted-text role="ref"} for more information.Deprecations (removal in next major release)
autouse=True
. For guidance on how to work around this warning seesync-test-async-fixture
{.interpreted-text role="ref"}.New features
#11538: Added
pytest.RaisesGroup
{.interpreted-text role="class"} as an equivalent topytest.raises
{.interpreted-text role="func"} for expectingExceptionGroup
{.interpreted-text role="exc"}. Also addspytest.RaisesExc
{.interpreted-text role="class"} which is now the logic behindpytest.raises
{.interpreted-text role="func"} and used as parameter topytest.RaisesGroup
{.interpreted-text role="class"}.RaisesGroup
includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulatingexcept* <except_star>
{.interpreted-text role="ref"}. Seeassert-matching-exception-groups
{.interpreted-text role="ref"} and docstrings for more information.#12081: Added
capteesys
{.interpreted-text role="fixture"} to capture AND pass output to next handler set by--capture=
.#12504:
pytest.mark.xfail
{.interpreted-text role="func"} now acceptspytest.RaisesGroup
{.interpreted-text role="class"} for theraises
parameter when you expect an exception group. You can also pass apytest.RaisesExc
{.interpreted-text role="class"} if you e.g. want to make use of thecheck
parameter.#12713: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.
This lets users still see condensed summary output of failures for quick reference in log files from job outputs, being especially useful if non-condensed output is very verbose.
#12749: pytest traditionally collects classes/functions in the test module namespace even if they are imported from another file.
For example:
contents of src/domain.py
contents of tests/test_testament.py
#12765: Thresholds to trigger snippet truncation can now be set with
truncation_limit_lines
{.interpreted-text role="confval"} andtruncation_limit_chars
{.interpreted-text role="confval"}.See
truncation-params
{.interpreted-text role="ref"} for more information.#13125:
console_output_style
{.interpreted-text role="confval"} now supportstimes
to show execution time of each test.#13192:
pytest.raises
{.interpreted-text role="func"} will now raise a warning when passing an empty string tomatch
, as this will match against any value. Usematch="^$"
if you want to check that an exception has no message.#13192:
pytest.raises
{.interpreted-text role="func"} will now print a helpful string diff if matching fails and the match parameter has^
and$
and is otherwise escaped.#13192: You can now pass
with pytest.raises(check=fn): <pytest.raises>
{.interpreted-text role="func"}, wherefn
is a function which takes a raised exception and returns a boolean. Theraises
fails if no exception was raised (as usual), passes if an exception is raised andfn
returnsTrue
(as well asmatch
and the type matching, if specified, which are checked before), and propagates the exception iffn
returnsFalse
(which likely also fails the test).#13228:
hidden-param
{.interpreted-text role="ref"} can now be used inid
ofpytest.param
{.interpreted-text role="func"} or inids
ofMetafunc.parametrize <pytest.Metafunc.parametrize>
{.interpreted-text role="py:func"}.It hides the parameter set from the test name.
#13253: New flag:
--disable-plugin-autoload <disable_plugin_autoload>
{.interpreted-text role="ref"} which works as an alternative toPYTEST_DISABLE_PLUGIN_AUTOLOAD
{.interpreted-text role="envvar"} when setting environment variables is inconvenient; and allows setting it in config files withaddopts
{.interpreted-text role="confval"}.Improvements in existing functionality
#10224: pytest's
short
andlong
traceback styles (how-to-modifying-python-tb-printing
{.interpreted-text role="ref"})now have partial
657
{.interpreted-text role="pep"} support and will show specific code segments in thetraceback.
-- by
ammaraskar
{.interpreted-text role="user"}#11118: Now
pythonpath
{.interpreted-text role="confval"} configures [$PYTHONPATH]{.title-ref} earlier than before during the initialization process, which now also affects plugins loaded via the [-p]{.title-ref} command-line option.-- by
millerdev
{.interpreted-text role="user"}#11381: The
type
parameter of theparser.addini
method now accepts ["int"]{.title-ref} and"float"
parameters, facilitating the parsing of configuration values in the configuration file.Example:
The [pytest.ini]{.title-ref} file:
#11525: Fixtures are now clearly represented in the output as a "fixture object", not as a normal function as before, making it easy for beginners to catch mistakes such as referencing a fixture declared in the same module but not requested in the test function.
-- by
the-compiler
{.interpreted-text role="user"} andglyphack
{.interpreted-text role="user"}#12426: A warning is now issued when
pytest.mark.usefixtures ref
{.interpreted-text role="ref"} is used without specifying any fixtures. Previously, empty usefixtures markers were silently ignored.[#12707](https
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.