🧪 Make pytest notify us about future warnings

In essence, this configures Python to turn any warnings emitted in
runtime into errors[[1]]. This is the best practice that allows
reacting to future deprecation announcements that are coming from the
dependencies (direct, or transitive, or even CPython itself)[[2]].

The typical workflow looks like this:

  1. If a dependency is updated an a warning is hit in tests, the
     deprecated thing should be replaced with newer APIs.

  2. If a dependency is transitive or we have no control over it
     otherwise, the specific warning and a regex matching its message,
     plus the module reference (where possible) can be added to the
     list of temporary ignores in `pytest.ini`.

  3. The list of temporary ignores should be reevaluated periodically,
     including when dependency re-pinning in lockfile is happening.

[1]: https://docs.python.org/3/using/cmdline.html#cmdoption-W
[2]: https://pytest-with-eric.com/configuration/pytest-ignore-warnings/
This commit is contained in:
Sviatoslav Sydorenko
2024-11-07 13:19:08 +01:00
committed by Alan Rominger
parent 4bbcb34ae3
commit d8e87da898
6 changed files with 117 additions and 0 deletions

View File

View File

@@ -44,4 +44,8 @@ max-line-length = 120
[pytest]
addopts = -v --tb=native
filterwarnings =
error
junit_family=xunit2