#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:
pytest_ignore_collect{.interpreted-text role="hook"} - the path parameter - use collection_path instead.
pytest_collect_file{.interpreted-text role="hook"} - the path parameter - use file_path instead.
pytest_pycollect_makemodule{.interpreted-text role="hook"} - the path parameter - use module_path instead.
pytest_report_header{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
pytest_report_collectionfinish{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
The replacement parameters are available since pytest 7.0.0.
The old parameters will be removed in pytest 9.0.0.
See legacy-path-hooks-deprecated{.interpreted-text role="ref"} for more details.
Features
#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.
See Read arguments from file <args-from-file>{.interpreted-text role="ref"} for details.
Improvements
#11523: pytest.importorskip{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised ImportError{.interpreted-text role="class"} instead of ModuleNotFoundError{.interpreted-text role="class"}.
The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip{.interpreted-text role="func"}.
See import-or-skip-import-error{.interpreted-text role="ref"} for details.
#11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>{.interpreted-text role="meth"}) are now reported instead of silently failing.
#11777: Text is no longer truncated in the short test summary info section when -vv is given.
#12112: Improved namespace packages detection when consider_namespace_packages{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).
#9502: Added PYTEST_VERSION{.interpreted-text role="envvar"} 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.
Bug Fixes
#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'.
Now the request.instance <pytest.FixtureRequest.instance>{.interpreted-text role="attr"} attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods.
Removed support for xdist rsync (now deprecated).
Contributed by Matthias Reichenbach in [#623](https://github.com/pytest-dev/pytest-cov/issues/623) <https://github.com/pytest-dev/pytest-cov/pull/623>_.
Switched docs theme to Furo.
Various legacy Python cleanup and CI improvements.
Contributed by Christian Clauss and Hugo van Kemenade in
[#630](https://github.com/pytest-dev/pytest-cov/issues/630) <https://github.com/pytest-dev/pytest-cov/pull/630>,
[#631](https://github.com/pytest-dev/pytest-cov/issues/631) <https://github.com/pytest-dev/pytest-cov/pull/631>,
[#632](https://github.com/pytest-dev/pytest-cov/issues/632) <https://github.com/pytest-dev/pytest-cov/pull/632>_ and
[#633](https://github.com/pytest-dev/pytest-cov/issues/633) <https://github.com/pytest-dev/pytest-cov/pull/633>_.
Added a pyproject.toml example in the docs.
Contributed by Dawn James in [#626](https://github.com/pytest-dev/pytest-cov/issues/626) <https://github.com/pytest-dev/pytest-cov/pull/626>_.
Modernized project's pre-commit hooks to use ruff. Initial POC contributed by
Christian Clauss in [#584](https://github.com/pytest-dev/pytest-cov/issues/584) <https://github.com/pytest-dev/pytest-cov/pull/584>_.
4.1.0 (2023-05-24)
Updated CI with new Pythons and dependencies.
Removed rsyncdir support. This makes pytest-cov compatible with xdist 3.0.
Contributed by Sorin Sbarnea in [#558](https://github.com/pytest-dev/pytest-cov/issues/558) <https://github.com/pytest-dev/pytest-cov/pull/558>_.
Optimized summary generation to not be performed if no reporting is active (for example,
when --cov-report='' is used without --cov-fail-under).
Contributed by Jonathan Stewmon in [#589](https://github.com/pytest-dev/pytest-cov/issues/589) <https://github.com/pytest-dev/pytest-cov/pull/589>_.
Added support for JSON reporting.
Contributed by Matthew Gamble in [#582](https://github.com/pytest-dev/pytest-cov/issues/582) <https://github.com/pytest-dev/pytest-cov/pull/582>_.
Refactored code to use f-strings.
Contributed by Mark Mayo in [#572](https://github.com/pytest-dev/pytest-cov/issues/572) <https://github.com/pytest-dev/pytest-cov/pull/572>_.
Fixed a skip in the test suite for some old xdist.
Contributed by a bunch of people in [#565](https://github.com/pytest-dev/pytest-cov/issues/565) <https://github.com/pytest-dev/pytest-cov/pull/565>_.
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
Fix typing errors with recent versions of mypy #769
Prevent DeprecationWarning about internal use of asyncio.get_event_loop() from affecting test cases #757
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
Fix typing errors with recent versions of mypy #769
Prevent DeprecationWarning about internal use of asyncio.get_event_loop() from affecting test cases #757
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
Fix typing errors with recent versions of mypy #769
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
pytest-asyncio 0.23.4
0.23.4 (2024-01-28)
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Addresses further issues that caused an internal pytest error during test collection
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Addresses further issues that caused an internal pytest error during test collection
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
... (truncated)
Commits
c34da04 [docs] Mentioned pytest 8.2 compatibility fix in changelog.
143f745 Fix compatibility with pytest 8.2 FixtureDef.unittest removal
[orm] [usecase] Added support for the PEP 695TypeAliasType construct as well as the
python 3.12 native type keyword to work with ORM Annotated Declarative
form when using these constructs to link to a PEP 593Annotated
container, allowing the resolution of the Annotated to proceed when
these constructs are used in a _orm.Mapped typing container.
[orm] [bug] Fixed Declarative issue where typing a relationship using
_orm.Relationship rather than _orm.Mapped would
inadvertently pull in the "dynamic" relationship loader strategy for that
attribute.
[orm] [bug] Fixed issue in ORM annotated declarative where using
_orm.mapped_column() with an _orm.mapped_column.index
or _orm.mapped_column.unique setting of False would be
overridden by an incoming Annotated element that featured that
parameter set to True, even though the immediate
_orm.mapped_column() element is more specific and should take
precedence. The logic to reconcile the booleans has been enhanced to
accommodate a local value of False as still taking precedence over an
incoming True value from the annotated element.
[orm] [bug] [regression] Fixed regression from version 2.0.28 caused by the fix for #11085
where the newer method of adjusting post-cache bound parameter values would
interefere with the implementation for the _orm.subqueryload() loader
option, which has some more legacy patterns in use internally, when
the additional loader criteria feature were used with this loader option.
[engine] [bug] Fixed issue in engine_insertmanyvalues feature where using a primary
key column with an "inline execute" default generator such as an explicit
Sequence with an explcit schema name, while at the same time
using the
_engine.Connection.execution_options.schema_translate_map
This feature release provides improvements to various recently
added features, most importantly type parameter defaults (PEP 696).
There are no changes since 4.11.0rc1.
Changes since 4.10.0:
Fix tests on Python 3.13.0a5. Patch by Jelle Zijlstra.
Fix the runtime behavior of type parameters with defaults (PEP 696).
Patch by Nadir Chowdhury.
Fix minor discrepancy between error messages produced by typing
and typing_extensions on Python 3.10. Patch by Jelle Zijlstra.
When include_extra=False, get_type_hints() now strips ReadOnly from the annotation.
4.11.0rc1
Fix tests on Python 3.13.0a5. Patch by Jelle Zijlstra.
Fix the runtime behavior of type parameters with defaults (PEP 696).
Patch by Nadir Chowdhury.
Fix minor discrepancy between error messages produced by typing
and typing_extensions on Python 3.10. Patch by Jelle Zijlstra.
When include_extra=False, get_type_hints() now strips ReadOnly from the annotation.
4.10.0
Release 4.10.0 (February 25, 2024)
This feature release adds support for PEP 728 (TypedDict with extra
items) and PEP 742 (TypeIs).
There are no changes since 4.10.0rc1.
4.10.0rc1
Release 4.10.0rc1 (February 17, 2024)
Add support for PEP 728, supporting the closed keyword argument and the
special __extra_items__ key for TypedDict. Patch by Zixuan James Li.
Add support for PEP 742, adding typing_extensions.TypeIs. Patch
by Jelle Zijlstra.
Drop runtime error when a read-only TypedDict item overrides a mutable
one. Type checkers should still flag this as an error. Patch by Jelle
Zijlstra.
Speedup issubclass() checks against simple runtime-checkable protocols by
around 6% (backporting python/cpython#112717, by Alex
Waygood).
Fix a regression in the implementation of protocols where typing.Protocol
classes that were not marked as @runtime_checkable would be unnecessarily
introspected, potentially causing exceptions to be raised if the protocol had
problematic members. Patch by Alex Waygood, backporting
This feature release provides improvements to various recently
added features, most importantly type parameter defaults (PEP 696).
There are no changes since 4.11.0rc1.
Release 4.11.0rc1 (March 24, 2024)
Fix tests on Python 3.13.0a5. Patch by Jelle Zijlstra.
Fix the runtime behavior of type parameters with defaults (PEP 696).
Patch by Nadir Chowdhury.
Fix minor discrepancy between error messages produced by typing
and typing_extensions on Python 3.10. Patch by Jelle Zijlstra.
When include_extra=False, get_type_hints() now strips ReadOnly from the annotation.
Release 4.10.0 (February 24, 2024)
This feature release adds support for PEP 728 (TypedDict with extra
items) and PEP 742 (TypeIs).
There are no changes since 4.10.0rc1.
Release 4.10.0rc1 (February 17, 2024)
Add support for PEP 728, supporting the closed keyword argument and the
special __extra_items__ key for TypedDict. Patch by Zixuan James Li.
Add support for PEP 742, adding typing_extensions.TypeIs. Patch
by Jelle Zijlstra.
Drop runtime error when a read-only TypedDict item overrides a mutable
one. Type checkers should still flag this as an error. Patch by Jelle
Zijlstra.
Speedup issubclass() checks against simple runtime-checkable protocols by
around 6% (backporting python/cpython#112717, by Alex
Waygood).
Fix a regression in the implementation of protocols where typing.Protocol
classes that were not marked as @runtime_checkable would be unnecessarily
introspected, potentially causing exceptions to be raised if the protocol had
problematic members. Patch by Alex Waygood, backporting
python/cpython#113401.
Release 4.9.0 (December 9, 2023)
This feature release adds typing_extensions.ReadOnly, as specified
by PEP 705, and makes various other improvements, especially to
@typing_extensions.deprecated().
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 tests group in /tests with 8 updates:
22.1.0
23.2.0
0.15
0.16
1.10.2
2.7.1
7.4.2
8.2.0
4.0.0
5.0.0
0.20.3
0.23.6
1.4.45
2.0.29
4.8.0
4.11.0
Updates
attrs
from 22.1.0 to 23.2.0Commits
Updates
docstring-parser
from 0.15 to 0.16Changelog
Sourced from docstring-parser's changelog.
Commits
4951137
build: 0.16a12cca9
parser: add a description property to docstrings969b644
misc: support Python 3.12 (#82)703c6ca
docs: add installation instructions953b702
docs: update changelogUpdates
pydantic
from 1.10.2 to 2.7.1Release notes
Sourced from pydantic's releases.
... (truncated)
Changelog
Sourced from pydantic's changelog.
... (truncated)
Commits
2612947
2.7.1 release prep (#9307)2b8efa2
Move TODO regarding pickling to markdown (#9288)73d1049
adds test case for unexpected discriminated union behavior (#9236)c33b925
Change CI to usemacos-13
for Python 3.8 and 3.9 (#9305)82e4664
Fix model json schema with config types (#9287)a0f18e3
Fix bullets in Strict Mode docs (#9296)77b0e1c
Address case where model_construct on a class which defines model_post_init f...6322b24
Fixstrict
application tofunction-after
withuse_enum_values
(#9279)bb857bd
docs(performance): remove section on literal vs enum performance (#9262)3c15a8b
docs: makeTypeAdapter
example PEP-8 compliant (#9268)Updates
pytest
from 7.4.2 to 8.2.0Release notes
Sourced from pytest's releases.
... (truncated)
Commits
6bd3f31
Tweak changelog for 8.2.09b6219b
Prepare release version 8.2.0835765c
Merge pull request #12130 from bluetech/fixtures-inline7e7503c
unittest: report class cleanup exceptions (#12250)882c4da
fixtures: inlinefail_fixturefunc
2e8fb9f
fixtures: extract a_check_fixturedef
methodacf2971
fixtures: inline_getnextfixturedef
into_get_active_fixturedef
3c77aec
fixtures: move "request" check earlyd217d68
fixtures: inline_compute_fixture_value
530be28
fixtures: use early return in_get_active_fixturedef
Updates
pytest-cov
from 4.0.0 to 5.0.0Changelog
Sourced from pytest-cov's changelog.
Commits
5295ce0
Bump version: 4.1.0 → 5.0.01181b06
Update changelog.9757222
Fix a minor grammar error (#636)9f5cd81
Cleanup releasing instructions. Closes #616.93b5047
Add test for pyproject.toml loading without explicit --cov-config. Ref #508.ff50860
docs: add config instructions for pyproject.toml.4a5a4b5
Keep GitHub Actions up to date with GitHub's Dependabot1d7f559
Fix or remove URLs that are causing docs tests to fail6a5af8e
Update changelog.d9fe8df
Switch to furo. Closes #618.Updates
pytest-asyncio
from 0.20.3 to 0.23.6Release notes
Sourced from pytest-asyncio's releases.
... (truncated)
Commits
c34da04
[docs] Mentioned pytest 8.2 compatibility fix in changelog.143f745
Fix compatibility with pytest 8.2 FixtureDef.unittest removal13d4b79
Remove unused function_removesuffix
cdd2c49
UseFixtureRequest
instead ofSubRequest
c3429fa
Build(deps): Bump packaging from 23.2 to 24.0 in /dependencies/docs5f2338d
Build(deps): Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14726c6e0
Build(deps): Bump coverage from 7.4.3 to 7.4.4 in /dependencies/default8bd8288
Build(deps): Bump pytest from 8.0.2 to 8.1.1 in /dependencies/defaultef3b347
Build(deps): Bump packaging from 23.2 to 24.0 in /dependencies/defaultb22d84e
[docs] Fixes the example showing how to run all tests in a session-scoped loop.Updates
sqlalchemy
from 1.4.45 to 2.0.29Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
typing-extensions
from 4.8.0 to 4.11.0Release notes
Sourced from typing-extensions's releases.
... (truncated)
Changelog
Sourced from typing-extensions's changelog.
... (truncated)
Commits
d4d929d
Prepare release 4.11.0 (#363)94bec44
Prepare release 4.11.0rc1 (#362)10648b6
Fix tests on 3.13.0a5 (#358)8170fc7
Fix runtime behaviour of PEP 696 (#293)d34c389
Try to fix GH actions syntax (#355)d409ec9
Run CPython test suite in our CI (#353)9d1689e
Fix indentation in TypedDict docs (#352)4fdc09d
Third-party tests: don't run pydantic tests on pypy (#351)3304a5f
Stabilise third party tests (#348)c3dc681
Make sure thatReadOnly
is removed when using `get_type_hints(include_extra...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