Change8

9.0.2

📦 pytestView on GitHub →
1 features🐛 4 fixes1 deprecations🔧 3 symbols

Summary

pytest 9.0.2 fixes several bugs, restores a broken private config attribute, updates documentation, and disables the terminal progress plugin by default for better terminal compatibility.

Migration Steps

  1. If you relied on the terminal progress plugin being enabled by default, add `-p terminalprogress` to your pytest invocation or enable it in a `pytest.ini`/`pyproject.toml` file.
  2. Update any `tmp_path_retention_count` entries in TOML configuration files to use a string value (e.g., `tmp_path_retention_count = \"5\"`).
  3. Avoid accessing `config.inicfg` directly; migrate to the public configuration API before it is removed in pytest 10.
  4. No action required for the `unittest` subtests performance fix.

✨ New Features

  • Cross‑reference‑able documentation for pytest’s command‑line flags has been added to the API reference.

🐛 Bug Fixes

  • Disabled the terminal progress plugin by default (except on Windows) due to compatibility issues with some terminal emulators; it can be re‑enabled with `-p terminalprogress` and will not emit escape codes when `TERM` is set to `dumb`.
  • Corrected the TOML type of the `tmp_path_retention_count` setting in the API reference from a number to a string.
  • Restored the private `config.inicfg` attribute to its original behavior via a compatibility shim after it was changed in a breaking way in pytest 9.0.0.
  • Optimized handling of `unittest` subtests, fixing quadratic‑time performance degradation on Python 3.10.

🔧 Affected Symbols

config.inicfgtmp_path_retention_countterminalprogress

⚡ Deprecations

  • The private `config.inicfg` attribute is deprecated and will be removed in pytest 10 (scheduled for deprecation in 9.1).