- Added missing int and float variants to the Literal type annotation of the type parameter in pytest.Parser.addini
- Fixed a crash when using console_output_style with times and a module is skipped
- Fixed a crash when using pytest.approx and decimal.Decimal instances with the decimal.FloatOperation trap set
- No longer evaluate type annotations in Python 3.14 when inspecting function signatures to prevent crashes during module collection
- pytest.approx now only imports numpy if NumPy is already in sys.modules
From pytest
pytest 8.4.2 (2025-09-03)
Bug fixes
-
#13478: Fixed a crash when using
console_output_style{.interpreted-text role="confval"} withtimesand a module is skipped. -
#13530: Fixed a crash when using
pytest.approx{.interpreted-text role="func"} anddecimal.Decimal{.interpreted-text role="class"} instances with thedecimal.FloatOperation{.interpreted-text role="class"} trap set. -
#13549: No longer evaluate type annotations in Python
3.14when inspecting function signatures.This prevents crashes during module collection when modules do not explicitly use
from __future__ import annotationsand import types for annotations within aif TYPE_CHECKING:block. -
#13559: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in
pytest.Parser.addini{.interpreted-text role="meth"}. -
#13563:
pytest.approx{.interpreted-text role="func"} now only importsnumpyif NumPy is already insys.modules. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.
Improved documentation
- #13577: Clarify that
pytest_generate_testsis discovered in test modules/classes; other hooks must be inconftest.pyor plugins.
Contributor-facing changes
- #13480: Self-testing: fixed a few test failures when run with
-Wdefaultor a similar override. - #13547: Self-testing: corrected expected message for
test_doctest_unexpected_exceptionin Python3.14. - #13684: Make pytest's own testsuite insensitive to the presence of the
CIenvironment variable -- byogrisel{.interpreted-text role="user"}.