Fixed backwards compatibility breakage (in 3.9.2) of ssl parameter when set outside
of ClientSession (e.g. directly in TCPConnector) -- by :user:Dreamsorcerer.
Related issues and pull requests on GitHub:#8097, #8098.
Miscellaneous internal changes
Improved test suite handling of paths and temp files to consistently use pathlib and pytest fixtures.
Fixed backwards compatibility breakage (in 3.9.2) of ssl parameter when set outside
of ClientSession (e.g. directly in TCPConnector) -- by :user:Dreamsorcerer.
Related issues and pull requests on GitHub:
:issue:8097, :issue:8098.
Miscellaneous internal changes
Improved test suite handling of paths and temp files to consistently use pathlib and pytest fixtures.
Related issues and pull requests on GitHub:
:issue:3957.
3.9.2 (2024-01-28)
Bug fixes
Fixed server-side websocket connection leak.
Related issues and pull requests on GitHub:
:issue:7978.
Fixed web.FileResponse doing blocking I/O in the event loop.
Related issues and pull requests on GitHub:
:issue:8012.
[orm] [usecase] Added preliminary support for Python 3.12 pep-695 type alias structures,
when resolving custom type maps for ORM Annotated Declarative mappings.
[orm] [bug] Fixed issue where when making use of the
_orm.relationship.post_update feature at the same time as using
a mapper version_id_col could lead to a situation where the second UPDATE
statement emitted by the post-update feature would fail to make use of the
correct version identifier, assuming an UPDATE was already emitted in that
flush which had already bumped the version counter.
[orm] [bug] Fixed issue where ORM Annotated Declarative would mis-interpret the left
hand side of a relationship without any collection specified as
uselist=True if the left type were given as a class and not a string,
without using future-style annotations.
[sql] [bug] Improved compilation of _sql.any_() / _sql.all_() in the
context of a negation of boolean comparison, will now render NOT (expr)
rather than reversing the equality operator to not equals, allowing
finer-grained control of negations for these non-typical operators.
[typing] [bug] Fixed regressions caused by typing added to the sqlalchemy.sql.functions
module in version 2.0.24, as part of #6810:
- Further enhancements to pep-484 typing to allow SQL functions from
`_sql.func` derived elements to work more effectively with ORM-mapped
attributes ([#10801](https://www.sqlalchemy.org/trac/ticket/10801))
Fixed the argument types passed to functions so that literal expressions
Stop removing spaces from walrus operators within subscripts (#3823)
Fix incorrect formatting of certain async statements (#3609)
Allow combining # fmt: skip with other comments (#3959)
There are already a few improvements in the --preview style, which are slated for the
2025 stable style. Try them out and
share your feedback. In the past, the preview
style has included some features that we were not able to stabilize. This year, we're
Stop removing spaces from walrus operators within subscripts (#3823)
Fix incorrect formatting of certain async statements (#3609)
Allow combining # fmt: skip with other comments (#3959)
There are already a few improvements in the --preview style, which are slated for the
2025 stable style. Try them out and
share your feedback. In the past, the preview
style has included some features that we were not able to stabilize. This year, we're
See 8.0.0rc1 and 8.0.0rc2 for the full changes since pytest 7.4!
Bug Fixes
#11842: Properly escape the reason of a skip <pytest.mark.skip ref>{.interpreted-text role="ref"} mark when writing JUnit XML files.
#11861: Avoid microsecond exceeds 1_000_000 when using log-date-format with %f specifier, which might cause the test suite to crash.
8.0.0rc2
pytest 8.0.0rc2 (2024-01-17)
Improvements
#11233: Improvements to -r for xfailures and xpasses:
Report tracebacks for xfailures when -rx is set.
Report captured output for xpasses when -rX is set.
For xpasses, add - in summary between test name and reason, to match how xfail is displayed.
#11825: The pytest_plugin_registered{.interpreted-text role="hook"} hook has a new plugin_name parameter containing the name by which plugin is registered.
Bug Fixes
#11706: Fix reporting of teardown errors in higher-scoped fixtures when using [--maxfail]{.title-ref} or [--stepwise]{.title-ref}.
#11758: Fixed IndexError: string index out of range crash in if highlighted[-1] == "\n" and source[-1] != "\n".
This bug was introduced in pytest 8.0.0rc1.
#9765, #11816: Fixed a frustrating bug that afflicted some users with the only error being assert mod not in mods. The issue was caused by the fact that str(Path(mod)) and mod.__file__ don't necessarily produce the same string, and was being erroneously used interchangably in some places in the code.
This fix also broke the internal API of PytestPluginManager.consider_conftest by introducing a new parameter -- we mention this in case it is being used by external code, even if marked as private.
#7363: PytestRemovedIn8Warning deprecation warnings are now errors by default.
Following our plan to remove deprecated features with as little disruption as possible, all warnings of type PytestRemovedIn8Warning now generate errors instead of warning messages by default.
The affected features will be effectively removed in pytest 8.1, so please consult the deprecations{.interpreted-text role="ref"} section in the docs for directions on how to update existing code.
In the pytest 8.0.X series, it is possible to change the errors back into warnings as a stopgap measure by adding this to your pytest.ini file:
Fixes a bug that caused event loops to be closed prematurely when using async generator fixtures with class scope or wider in a function-scoped test #706
Fixes various bugs that caused an internal pytest error during test collection #711#713#719
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.3a0
0.23.3 (UNRELEASED)
Fixes a bug that caused event loops to be closed prematurely when using async generator fixtures with class scope or wider in a function-scoped test #708
Fixes a bug that caused an internal pytest error when using unittest.SkipTest in a module #711
[#463](https://github.com/pytest-dev/pluggy/issues/463) <https://github.com/pytest-dev/pluggy/issues/463>_: A warning :class:~pluggy.PluggyTeardownRaisedWarning is now issued when an old-style hookwrapper raises an exception during teardown.
See the warning documentation for more details.
[#471](https://github.com/pytest-dev/pluggy/issues/471) <https://github.com/pytest-dev/pluggy/issues/471>_: Add :func:PluginManager.unblock <pluggy.PluginManager.unblock> method to unblock a plugin by plugin name.
Bug Fixes
[#441](https://github.com/pytest-dev/pluggy/issues/441) <https://github.com/pytest-dev/pluggy/issues/441>_: Fix :func:~pluggy.HookCaller.call_extra() extra methods getting ordered before everything else in some circumstances. Regressed in pluggy 1.1.0.
[#438](https://github.com/pytest-dev/pluggy/issues/438) <https://github.com/pytest-dev/pluggy/issues/438>_: Fix plugins registering other plugins in a hook when the other plugins implement the same hook itself. Regressed in pluggy 1.1.0.
2343_, [FreeBSD]: filter net_connections()_ returned list in C instead of
Python, and avoid to retrieve unnecessary connection types unless explicitly
asked. E.g., on an IDLE system with few IPv6 connections this will run around
4 times faster. Before all connection types (TCP, UDP, UNIX) were retrieved
internally, even if only a portion was returned.
2342_, [NetBSD]: same as above (#2343) but for NetBSD.
2349_: adopted black formatting style.
Bug fixes
930_, [NetBSD], [critical]: net_connections()_ implementation was broken.
It could either leak memory or core dump.
2340_, [NetBSD]: if process is terminated, Process.cwd()_ will return an
empty string instead of raising NoSuchProcess_.
2345_, [Linux]: fix compilation on older compiler missing DUPLEX_UNKNOWN.
2222_, [macOS]: cpu_freq() now returns fixed values for min and max
frequencies in all Apple Silicon chips.
Bumps the all-dependencies group with 13 updates:
3.9.1
3.9.3
0.4.3
0.4.4
2.0.24
2.0.25
23.12.1
24.1.1
7.4.4
8.0.0
0.23.2
0.23.3
0.1.9
0.1.15
2.8.19.14
2.8.19.20240106
7.4.0
7.4.1
4.1.0
4.2.0
1.3.0
1.4.0
5.9.7
5.9.8
1.0.0
1.0.1
Updates
aiohttp
from 3.9.1 to 3.9.3Release notes
Sourced from aiohttp's releases.
... (truncated)
Changelog
Sourced from aiohttp's changelog.
... (truncated)
Commits
bf4edce
Release v3.9.3 (#8102)5637e8f
[PR #8098/aca206fc backport][3.9] Fix backwards compatibility with ssl (#8101)33f49e8
Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 (#8092)5ff4b3c
Update version94462ee
[PR #3957/79fe2045 backport][3.9] Improve test suite handling of paths, temp ...24a6d64
Release v3.9.2 (#8082)9118a58
[PR #8079/1c335944 backport][3.9] Validate static paths (#8080)435ad46
[PR #3955/8960063e backport][3.9] Replace all tmpdir fixtures with tmp_path (...d33bc21
Improve validation in HTTP parser (#8074) (#8078)0d945d1
[PR #7916/822fbc74 backport][3.9] Add more information to contributing page (...Updates
domify
from 0.4.3 to 0.4.4Changelog
Sourced from domify's changelog.
Commits
c4d60ac
Bump version to 0.4.40cc0b44
Update changelog32c848f
Upgrade dependencies4dfe305
Update elements430b7c0
Parser: handle another attribute exceptionab557c0
Upgrade dependencies04d0677
Update elementsb6f871a
Parser: handletemplate
attributes3dbf647
Bump version to 0.4.4.dev0Updates
sqlalchemy
from 2.0.24 to 2.0.25Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
black
from 23.12.1 to 24.1.1Release notes
Sourced from black's releases.
... (truncated)
Changelog
Sourced from black's changelog.
... (truncated)
Commits
e026c93
Prepare release 24.1.1 (#4186)79fc115
chore: ignore node_modules (produced by a pre-commit check) (#4184)8bf0454
Consistently add trailing comma on typed parameters (#4164)1607e9a
Fix missing space in option description (#4182)ed770ba
Fix cache file length (#4176)659c29a
New changelog0e6e46b
Prepare release 24.1.0 (#4170)4f47cac
Add --unstable flag (#4096)bccec8a
Show warning on invalid toml configuration (#4165)7d78946
Describe 2024 module docstring more accurately (#4168)Updates
pytest
from 7.4.4 to 8.0.0Release notes
Sourced from pytest's releases.
... (truncated)
Commits
478f823
Prepare release version 8.0.06085900
[8.0.x] fix: avoid rounding microsecond to1_000_000
(#11863)3b41c65
[8.0.x] Escape skip reason in junitxml (#11845)747072a
[8.0.x] Update docstring of scripts/generate-gh-release-notes.py (#11768)011a475
Properly attach packages to the GH release notes (#11839) (#11840)97960bd
Merge pull request #11835 from pytest-dev/release-8.0.0rc26be0a3c
Prepare release version 8.0.0rc244ffe07
Merge pull request #11837 from pytest-dev/backport-11836-to-8.0.x14ecb04
[8.0.x] testing: temporarily disable test due to hypothesis issue41c8dab
Merge pull request #11831 from bluetech/backport-11825-to-8.0.xUpdates
pytest-asyncio
from 0.23.2 to 0.23.3Release notes
Sourced from pytest-asyncio's releases.
Commits
260b791
[docs] Prepare release of v0.23.3.6a253e2
[docs] Shorten changelog by combining multiple issues.e2cbb90
[docs] Mention correct issue in changelog.0c522bf
[fix] Fixes a bug that caused an internal pytest error when using ImportWarni...31c7e6f
Build(deps): Bump coverage from 7.3.3 to 7.3.4 in /dependencies/default38d5c7e
Build(deps): Bump sphinx-rtd-theme in /dependencies/docs650ec58
Build(deps): Bump babel from 2.13.1 to 2.14.0 in /dependencies/docs0166a7e
Build(deps): Bump typing-extensions in /dependencies/default3a15f30
Build(deps): Bump coverage from 7.3.2 to 7.3.3 in /dependencies/default28e91f0
Build(deps): Bump hypothesis in /dependencies/defaultUpdates
ruff
from 0.1.9 to 0.1.15Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
a7755d7
Bump version to v0.1.15 (#9690)11449ac
Avoid markingInitVar
as a typing-only annotation (#9688)4ccbacd
Error if the NURSERY selector is used with preview (#9682)05a2f52
Documentliteral-membership
fix safety conditions (#9677)a6f7100
[pycodestyle
] Allowdtype
comparisons intype-comparison
(#9676)50122d2
[flake8-pytest-style
] Add fix safety documentation for `duplicate-parameter...ad2cfa3
[flake8-return] Consider exception suppress for unnecessary assignment (#9673)0045032
Set source type: Stub for black tests with options (#9674)bea8f2e
Detect automagic-like assignments in notebooks (#9653)c8074b0
Bump serde_with from 3.5.0 to 3.5.1 (#9672)Updates
types-python-dateutil
from 2.8.19.14 to 2.8.19.20240106Commits
Updates
coverage
from 7.4.0 to 7.4.1Changelog
Sourced from coverage's changelog.
Commits
07588ea
test: give hypothesis a little more time2c96518
build: tags should be signed8d1857f
docs: sample HTML for 7.4.1ddc88f7
docs: prep for 7.4.198cd671
docs: correct two library urls498b8c9
build: coverage runs have to skip windows pypy too75b22f0
test: ignore color in tracebacksb7c41a2
build: show action environment variables for debuggingf8be865
build: run actions on 3.13 since a3 came out.de60a6d
build(deps): bump actions/dependency-review-action from 3 to 4Updates
platformdirs
from 4.1.0 to 4.2.0Release notes
Sourced from platformdirs's releases.
Changelog
Sourced from platformdirs's changelog.
Commits
bc4d114
Add convenience methods toPlatformDirsAPI
that allow iterating over both u...0d8beea
[pre-commit.ci] pre-commit autoupdate (#260)0dcc051
[pre-commit.ci] pre-commit autoupdate (#257)3ce2035
Fix 2 typos about XDG_DATA_DIR (#256)783376b
[pre-commit.ci] pre-commit autoupdate (#255)f86cfb8
[pre-commit.ci] pre-commit autoupdate (#254)5cbfd8d
[pre-commit.ci] pre-commit autoupdate (#253)9f684a6
[pre-commit.ci] pre-commit autoupdate (#251)1db2522
Bump actions/setup-python from 4 to 5 (#248)4b68392
[pre-commit.ci] pre-commit autoupdate (#247)Updates
pluggy
from 1.3.0 to 1.4.0Changelog
Sourced from pluggy's changelog.
Commits
2efd28e
Preparing release 1.4.0ebeb2f2
Merge pull request #471 from bluetech/unblock3a28b4d
Merge pull request #464 from bluetech/hookwrapper-teardown-warning4331b7a
Merge pull request #473 from bluetech/iterator-invalidation7aef3e6
hooks: fix plugins registering other plugins in a hookcc36605
Merge pull request #472 from bluetech/call-extra-ordering-fix443fee6
hooks: fixcall_extra
extra methods getting ordered before everything else4577b45
hooks: add comment describing_hookimpls
's format/invariants.13b3661
AddPluginManager.unblock
method to unblock a name4b5b2d4
CHANGELOG: fix errors in 1.0.0 entryUpdates
psutil
from 5.9.7 to 5.9.8Changelog
Sourced from psutil's changelog.
Commits
27a1432
pre-release2d880c8
fix failing tests86f171a
refac td4ae6a0
refact some tests20ba266
more tests refactoring2e2668d
Merge branch 'master' of github.com:giampaolo/psutil82a4375
improve tests reliability14a33ff
Fix cpu_freq for Apple silicon (#2222)89eac06
refactor tests + make them more robustc458816
Adopt black formatting style (#2349)Updates
python-dotenv
from 1.0.0 to 1.0.1Release notes
Sourced from python-dotenv's releases.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Additional details and impacted files
```diff @@ Coverage Diff @@ ## main #733 +/- ## ========================================== + Coverage 68.06% 69.12% +1.05% ========================================== Files 46 46 Lines 3354 3352 -2 ========================================== + Hits 2283 2317 +34 + Misses 1071 1035 -36 ``` | [Files](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) | Coverage Δ | | |---|---|---| | [cerbottana/databases/veekun.py](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-Y2VyYm90dGFuYS9kYXRhYmFzZXMvdmVla3VuLnB5) | `97.75% <100.00%> (+0.43%)` | :arrow_up: | | [cerbottana/html\_utils.py](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-Y2VyYm90dGFuYS9odG1sX3V0aWxzLnB5) | `37.59% <ø> (ø)` | | | [cerbottana/models/room.py](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-Y2VyYm90dGFuYS9tb2RlbHMvcm9vbS5weQ==) | `84.69% <100.00%> (ø)` | | | [cerbottana/models/user.py](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-Y2VyYm90dGFuYS9tb2RlbHMvdXNlci5weQ==) | `65.59% <100.00%> (ø)` | | | [cerbottana/plugins/repeats.py](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-Y2VyYm90dGFuYS9wbHVnaW5zL3JlcGVhdHMucHk=) | `25.64% <100.00%> (ø)` | | ... and [2 files with indirect coverage changes](https://app.codecov.io/gh/Parnassius/cerbottana/pull/733/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None)