-
Notifications
You must be signed in to change notification settings - Fork 70
chore(deps): update all dependencies #2401
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate-bot
wants to merge
1
commit into
googleapis:main
Choose a base branch
from
renovate-bot:renovate/all
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+570
−539
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30b2074
to
8516b14
Compare
8516b14
to
c953c2c
Compare
c953c2c
to
4dc026e
Compare
4dc026e
to
971a6b3
Compare
971a6b3
to
74d2d65
Compare
74d2d65
to
3da2ef6
Compare
3da2ef6
to
c12c12d
Compare
1424142
to
0ecb2fb
Compare
0ecb2fb
to
4e94a76
Compare
4e94a76
to
6b4a9a1
Compare
6b4a9a1
to
91c9890
Compare
91c9890
to
fd0b039
Compare
fd0b039
to
ce9698a
Compare
ce9698a
to
4ac3189
Compare
4ac3189
to
f85e9f7
Compare
f85e9f7
to
d3b6326
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
kokoro:force-run
Add this label to force Kokoro to re-run the tests.
size: xl
Pull request size is extra large.
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:
==1.3.2
->==1.4.0
==5.5.2
->==6.1.0
==2025.4.26
->==2025.7.14
==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.1
==1.7.0
->==1.8.2
==6.4.3
->==6.6.3
==0.3.1
->==0.3.2
==8.3.5
->==8.4.1
==0.26.0
->==1.0.0
3.10
->3.13
0.1.1
->0.1.3
==4.13.2
->==4.14.1
22.04
->24.04
==1.20.0
->==1.20.1
Release Notes
aio-libs/aiosignal (aiosignal)
v1.4.0
Compare Source
==================
Features
Added decorator functionality to
Signal
as a convenient way to add a callback -- by@Vizonex
.#​699 <https://github.com/aio-libs/aiosignal/pulls/699>
_Improved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python <3.13).
Parameters for a
Signal
callback should now be defined likeSignal[int, str]
-- by @Vizonex and @Dreamsorcerer.#​699 <https://github.com/aio-libs/aiosignal/pulls/699>
,#​710 <https://github.com/aio-libs/aiosignal/pulls/710>
Misc
#​528 <https://github.com/aio-libs/aiosignal/pull/528>
_tkem/cachetools (cachetools)
v6.1.0
Compare Source
===================
Improve
LFUCache
insertion performance by switching to animplementation based on the
cacheing <https://pypi.org/project/cacheing/>
_ library.Update CI environment.
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.
certifi/python-certifi (certifi)
v2025.7.14
Compare Source
v2025.7.9
Compare Source
v2025.6.15
Compare Source
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
======
(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
======
(2025-06-03)
No significant changes.
v1.6.1
======
(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.1
Compare Source
This is release 1.73.1 (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.
Python
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.2
Compare Source
This is release 1.72.2 (gusto) 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.
Python
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.
C++
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.
v1.71.2
Compare Source
This is release 1.71.2 (gears) 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.
C++
Python
grpc.aio.*
).Instagram/LibCST (libcst)
v1.8.2
Compare Source
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.6.3
Compare Source
=====
(2025-06-30)
Bug fixes
Fixed inconsistencies generated by the C implementation of
_md_shrink()
which might later lead to assertion failures and crash -- by :user:Romain-Geissler-1A
.Related issues and pull requests on GitHub:
:issue:
1229
.v6.6.2
Compare Source
=====
(2025-06-28)
Bug fixes
Fixed a memory corruption issue in the C implementation of
_md_shrink()
that could lead to segmentation faults and data loss when items were deleted from a :class:~multidict.MultiDict
. The issue was an edge case in the pointer arithmetic during the compaction phase -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1221
, :issue:1222
.Fixed format string compilation errors in debug builds on 32-bit platforms by using portable
%zd
format specifiers forPy_ssize_t
values instead of%ld
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1225
, :issue:1226
.Packaging updates and notes for downstreams
Re-enabled 32-bit Linux wheel builds that were disabled by default in cibuildwheel 3.0.0 -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1225
, :issue:1227
.v6.6.1
Compare Source
=====
(2025-06-28)
Bug fixes
If :meth:
multidict.MultiDict.extend
, :meth:multidict.MultiDict.merge
, or :meth:multidict.MultiDict.update
raises an exception, now the multidict internal state is correctly restored.Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1215
.Contributor-facing changes
Fixed
setuptools
deprecation warning about the license specification -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1216
.Fix compiler warnings and convert them to errors -- by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1217
.v6.6.0
Compare Source
=====
(2025-06-27)
Features
Added :meth:
multidict.MultiDict.merge
which copies all items from arguments if its keynot exist in the dictionary -- by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
292
.Stopped reallocating memory for the internal
htkeys_t
structure when inserting new items if themultidict has deleted items and it could be collapsed in-place. Removal of
malloc()
/free()
improves the performance slightly.The change affects C implementation only, pure Python code is not changed.
Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1200
.C implementation of :class:
multidict.MultiDict.getall
now is slightly faster if it returns nothing -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1212
.Improved documentation
Replaced docstring for :meth:
multidict.MultiDict.update
to don't use RST/markdown markup.Related issues and pull requests on GitHub:
:issue:
1203
.Improved documentation for :meth:
multidict.MultiDict.extend
and :meth:multidict.MultiDict.update
-- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1205
.Contributor-facing changes
When building wheels, the source distribution is now passed directly
to the
cibuildwheel
invocation -- by :user:webknjaz
.Related issues and pull requests on GitHub:
:issue:
1199
.Set up
PYTHONHASHSEED
for benchmarks execution to make measured times stable -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1202
.v6.5.1
Compare Source
=====
(2025-06-24)
Bug fixes
Fixed a bug in C implementation when multidict is resized and it has deleted slots.
The bug was introduced by multidict 6.5.0 release.
Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1195
.Contributor-facing changes
A pair of code formatters for Python and C have been configured in the pre-commit tool.
Related issues and pull requests on GitHub:
:issue:
1123
.Shorted fixture parametrization ids.
For example,
test_keys_view_xor[case-insensitive-pure-python-module]
becomestest_keys_view_xor[ci-py]
-- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1192
.The :file:
reusable-cibuildwheel.yml
workflow has been refactored tobe more generic and :file:
ci-cd.yml
now holds all the configurationtoggles -- by :user:
webknjaz
.Related issues and pull requests on GitHub:
:issue:
1193
.v6.5.0
Compare Source
=====
(2025-06-17)
.. note::
The release was yanked because of :issue:
1195
, multidict 6.5.1 should be usedinstead.
Features
Replace internal implementation from an array of items to hash table.
algorithmic complexity for lookups is switched from O(N) to O(1).
The hash table is very similar to :class:
dict
from CPython but it allows keys duplication.The benchmark shows 25-50% boost for single lookups, x2-x3 for bulk updates, and x20 for
some multidict view operations. The gain is not for free:
:class:
~multidict.MultiDict.add
and :class:~multidict.MultiDict.extend
are 25-50%slower now. We consider it as acceptable because the lookup is much more common
operation that addition for the library domain.
Related issues and pull requests on GitHub:
:issue:
1128
.Contributor-facing changes
Builds have been added for arm64 Windows
wheels and the
reusable-build-wheel.yml
template has been modified to allow for
an os value (
windows-11-arm
) whichdoes not end with the
-latest
postfix.Related issues and pull requests on GitHub:
:issue:
1167
.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
=====
(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.1
Compare Source
pytest 8.4.1 (2025-06-17)
Bug fixes
#13461: Corrected
_pytest.terminal.TerminalReporter.isatty
to supportbeing called as a method. Before it was just a boolean which could
break correct code when using
-o log_cli=true
).#13477: Reintroduced
pytest.PytestReturnNotNoneWarning
{.interpreted-text role="class"} which was removed by accident in pytest [8.4]{.title-ref}.This warning is raised when a test functions returns a value other than
None
, which is often a mistake made by beginners.See
return-not-none
{.interpreted-text role="ref"} for more information.#13497: Fixed compatibility with
Twisted 25+
.Improved documentation
faulthandler
not working on Windows.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: Exception chains can be navigated when dropped into Pdb in Python 3.13+.
#12736: Added a new attribute [name]{.title-ref} with the fixed value ["pytest tests"]{.title-ref} to the root tag [testsuites]{.title-ref} of the junit-xml generated by pytest.
This attribute is part of many junit-xml specifications and is even part of the [junit-10.xsd]{.title-ref} specification that pytest's implementation is based on.
#12943: If a test fails with an exceptiongroup with a single exception, the contained exception will now be displayed in the short test summary info.
#12958: A number of
unraisable <unraisable>
{.interpreted-text role="ref"} enhancements:tracemalloc
{.interpreted-text role="mod"} allocation traceback (if available).StopIteration
{.interpreted-text role="class"} in test failures.pytest.PytestUnraisableExceptionWarning
{.interpreted-text role="class"} exception if raised.repr
of the unraisable object in the unraisable hook so you get the latest information if available, and should help with resurrection of the object.#13010:
pytest.approx
{.interpreted-text role="func"} now can compare collections that contain numbers and non-numbers mixed.#13016: A number of
threadexception <unraisable>
{.interpreted-text role="ref"} enhancements:tracemalloc
{.interpreted-text role="mod"} allocation traceback (if available).StopIteration
{.interpreted-text role="class"} in test failures.pytest.PytestUnhandledThreadExceptionWarning
{.interpreted-text role="class"} exception if raised.name
of the thread object in the excepthook which should help with resurrection of the thread.#13031: An empty parameter set as in
pytest.mark.parametrize([], ids=idfunc)
will no longer trigger a call toidfunc
with internal objects.#13115: Allows supplying
ExceptionGroup[Exception]
andBaseExceptionGroup[BaseException]
topytest.raises
to keep full typing onExceptionInfo <pytest.ExceptionInfo>
{.interpreted-text role="class"}:Parametrizing with other exception types remains an error - we do not check the types of child exceptions and thus do not permit code that might look like we do.
#13122: The
--stepwise
mode received a number of improvements:It no longer forgets the last failed test in case pytest is executed later without the flag.
This enables the following workflow:
--stepwise
, pytest then stops at the first failing test;--stepwise
flag (for example in an IDE), until it is fixed.--stepwise
again and pytest will continue from the previously failed test, and if it passes, continue on to the next tests.Previously, at step 3, pytest would start from the beginning, forgetting the previously failed test.
This change however might cause issues if the
--stepwise
mode is used far apart in time, as the state might get stale, so the internal state will be reset automatically in case the test suite changes (for now only the number of tests are considered for this, we might change/improve this on the future).New
--stepwise-reset
/--sw-reset
flag, allowing the user to explicitly reset the stepwise state and restart the workflow from the beginning.#13308: Added official support for Python 3.14.
#13380: Fix
ExceptionGroup
{.interpreted-text role="class"} traceback filtering to exclude pytest internals.#13415: The author metadata of the BibTex example is now correctly formatted with last names following first names.
An example of BibLaTex has been added.
BibTex and BibLaTex examples now clearly indicate that what is cited is software.
-- by
willynilly
{.interpreted-text role="user"}#13420: Improved test collection performance by optimizing path resolution used in
FSCollector
.#13457: The error message about duplicate parametrization no longer displays an internal stack trace.
#4112: Using
pytest.mark.usefixtures <pytest.mark.usefixtures ref>
{.interpreted-text role="ref"} onpytest.param
{.interpreted-text role="func"} now produces an error instead of silently doing nothing.#5473: Replace [:]{.title-ref} with [;]{.title-ref} in the assertion rewrite warning message so it can be filtered using standard Python warning filters before calling
pytest.main
{.interpreted-text role="func"}.pygments
dependency is now required, causing output always to be source-highlighted (unless disabled via the--code-highlight=no
CLI option).Bug fixes
#10404: Apply filterwarnings from config/cli as soon as possible, and revert them as late as possible
so that warnings as errors are collected throughout the pytest run and before the
unraisable and threadexcept hooks are removed.
This allows very late warnings and unraisable/threadexcept exceptions to fail the test suite.
This also changes the warning that the lsof plugin issues from PytestWarning to the new warning PytestFDWarning so it can be more easily filtered.
#11067: The test report is now consistent regardless if the test xfailed via
pytest.mark.xfail <pytest.mark.xfail ref>
{.interpreted-text role="ref"} orpytest.fail
{.interpreted-text role="func"}.Previously, xfailed tests via the marker would have the string
"reason: "
prefixed to the message, while those xfailed via the function did not. The prefix has been removed.#12008: In
11220
{.interpreted-text role="pr"}, an unintendedConfiguration
📅 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.