Skip to content

Commit

Permalink
fix(deps): Update dependency pytest to v8.1.1 (#150)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [pytest](https://togithub.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | minor | `==8.0.2` -> `==8.1.1` |

---

### Release Notes

<details>
<summary>pytest-dev/pytest (pytest)</summary>

### [`v8.1.1`](https://togithub.com/pytest-dev/pytest/releases/tag/8.1.1)

[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.1.0...8.1.1)

# pytest 8.1.1 (2024-03-08)

::: {.note}
::: {.title}
Note
:::

This release is not a usual bug fix release -- it contains features and improvements, being a follow up
to `8.1.0`, which has been yanked from PyPI.
:::

## Features

-   [#&#8203;11475](https://togithub.com/pytest-dev/pytest/issues/11475): Added the new `consider_namespace_packages`{.interpreted-text role="confval"} configuration option, defaulting to `False`.

    If set to `True`, pytest will attempt to identify modules that are part of [namespace packages](https://packaging.python.org/en/latest/guides/packaging-namespace-packages) when importing modules.

-   [#&#8203;11653](https://togithub.com/pytest-dev/pytest/issues/11653): Added the new `verbosity_test_cases`{.interpreted-text role="confval"} configuration option for fine-grained control of test execution verbosity.
    See `Fine-grained verbosity <pytest.fine_grained_verbosity>`{.interpreted-text role="ref"} for more details.

## Improvements

-   [#&#8203;10865](https://togithub.com/pytest-dev/pytest/issues/10865): `pytest.warns`{.interpreted-text role="func"} now validates that `warnings.warn`{.interpreted-text role="func"} was called with a \[str]{.title-ref} or a \[Warning]{.title-ref}.
    Currently in Python it is possible to use other types, however this causes an exception when `warnings.filterwarnings`{.interpreted-text role="func"} is used to filter those warnings (see [CPython #&#8203;103577](https://togithub.com/python/cpython/issues/103577) for a discussion).
    While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.

-   [#&#8203;11311](https://togithub.com/pytest-dev/pytest/issues/11311): When using `--override-ini` for paths in invocations without a configuration file defined, the current working directory is used
    as the relative directory.

    Previoulsy this would raise an `AssertionError`{.interpreted-text role="class"}.

-   [#&#8203;11475](https://togithub.com/pytest-dev/pytest/issues/11475): `--import-mode=importlib <import-mode-importlib>`{.interpreted-text role="ref"} now tries to import modules using the standard import mechanism (but still without changing :py`sys.path`{.interpreted-text role="data"}), falling back to importing modules directly only if that fails.

    This means that installed packages will be imported under their canonical name if possible first, for example `app.core.models`, instead of having the module name always be derived from their path (for example `.env310.lib.site_packages.app.core.models`).

-   [#&#8203;11801](https://togithub.com/pytest-dev/pytest/issues/11801): Added the `iter_parents() <_pytest.nodes.Node.iter_parents>`{.interpreted-text role="func"} helper method on nodes.
    It is similar to `listchain <_pytest.nodes.Node.listchain>`{.interpreted-text role="func"}, but goes from bottom to top, and returns an iterator, not a list.

-   [#&#8203;11850](https://togithub.com/pytest-dev/pytest/issues/11850): Added support for `sys.last_exc`{.interpreted-text role="data"} for post-mortem debugging on Python>=3.12.

-   [#&#8203;11962](https://togithub.com/pytest-dev/pytest/issues/11962): In case no other suitable candidates for configuration file are found, a `pyproject.toml` (even without a `[tool.pytest.ini_options]` table) will be considered as the configuration file and define the `rootdir`.

-   [#&#8203;11978](https://togithub.com/pytest-dev/pytest/issues/11978): Add `--log-file-mode` option to the logging plugin, enabling appending to log-files. This option accepts either `"w"` or `"a"` and defaults to `"w"`.

    Previously, the mode was hard-coded to be `"w"` which truncates the file before logging.

-   [#&#8203;12047](https://togithub.com/pytest-dev/pytest/issues/12047): When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.
    Previously, only the first exception was reported.

## Bug Fixes

-   [#&#8203;11475](https://togithub.com/pytest-dev/pytest/issues/11475): Fixed regression where `--importmode=importlib` would import non-test modules more than once.

-   [#&#8203;11904](https://togithub.com/pytest-dev/pytest/issues/11904): Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using `--pyargs`.

    This change improves the collection tree for tests specified using `--pyargs`, see `12043`{.interpreted-text role="pull"} for a comparison with pytest 8.0 and <8.

-   [#&#8203;12011](https://togithub.com/pytest-dev/pytest/issues/12011): Fixed a regression in 8.0.1 whereby `setup_module` xunit-style fixtures are not executed when `--doctest-modules` is passed.

-   [#&#8203;12014](https://togithub.com/pytest-dev/pytest/issues/12014): Fix the `stacklevel` used when warning about marks used on fixtures.

-   [#&#8203;12039](https://togithub.com/pytest-dev/pytest/issues/12039): Fixed a regression in `8.0.2` where tests created using `tmp_path`{.interpreted-text role="fixture"} have been collected multiple times in CI under Windows.

## Improved Documentation

-   [#&#8203;11790](https://togithub.com/pytest-dev/pytest/issues/11790): Documented the retention of temporary directories created using the `tmp_path` fixture in more detail.

## Trivial/Internal Changes

-   [#&#8203;11785](https://togithub.com/pytest-dev/pytest/issues/11785): Some changes were made to private functions which may affect plugins which access them:

    -   `FixtureManager._getautousenames()` now takes a `Node` itself instead of the nodeid.
    -   `FixtureManager.getfixturedefs()` now takes the `Node` itself instead of the nodeid.
    -   The `_pytest.nodes.iterparentnodeids()` function is removed without replacement.
        Prefer to traverse the node hierarchy itself instead.
        If you really need to, copy the function from the previous pytest release.

-   [#&#8203;12069](https://togithub.com/pytest-dev/pytest/issues/12069): Delayed the deprecation of the following features to `9.0.0`:

    -   `node-ctor-fspath-deprecation`{.interpreted-text role="ref"}.
    -   `legacy-path-hooks-deprecated`{.interpreted-text role="ref"}.

    It was discovered after `8.1.0` was released that the warnings about the impeding removal were not being displayed, so the team decided to revert the removal.

    This is the reason for `8.1.0` being yanked.

# pytest 8.1.0 (YANKED)

::: {.note}
::: {.title}
Note
:::

This release has been **yanked**: it broke some plugins without the proper warning period, due to
some warnings not showing up as expected.

See [#&#8203;12069](https://togithub.com/pytest-dev/pytest/issues/12069).
:::

### [`v8.1.0`](https://togithub.com/pytest-dev/pytest/releases/tag/8.1.0)

[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.0.2...8.1.0)

# pytest 8.1.0 (YANKED)

> \[!IMPORTANT]\
> This release has been **yanked**: it broke some plugins without the proper warning period, due to some warnings not showing up as expected. See [#&#8203;12069](https://togithub.com/pytest-dev/pytest/issues/12069).

## Features

-   [#&#8203;11475](https://togithub.com/pytest-dev/pytest/issues/11475): Added the new `consider_namespace_packages`{.interpreted-text role="confval"} configuration option, defaulting to `False`.

    If set to `True`, pytest will attempt to identify modules that are part of [namespace packages](https://packaging.python.org/en/latest/guides/packaging-namespace-packages) when importing modules.

-   [#&#8203;11653](https://togithub.com/pytest-dev/pytest/issues/11653): Added the new `verbosity_test_cases`{.interpreted-text role="confval"} configuration option for fine-grained control of test execution verbosity.
    See `Fine-grained verbosity <pytest.fine_grained_verbosity>`{.interpreted-text role="ref"} for more details.

## Improvements

-   [#&#8203;10865](https://togithub.com/pytest-dev/pytest/issues/10865): `pytest.warns`{.interpreted-text role="func"} now validates that `warnings.warn`{.interpreted-text role="func"} was called with a \[str]{.title-ref} or a \[Warning]{.title-ref}.
    Currently in Python it is possible to use other types, however this causes an exception when `warnings.filterwarnings`{.interpreted-text role="func"} is used to filter those warnings (see [CPython #&#8203;103577](https://togithub.com/python/cpython/issues/103577) for a discussion).
    While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.

-   [#&#8203;11311](https://togithub.com/pytest-dev/pytest/issues/11311): When using `--override-ini` for paths in invocations without a configuration file defined, the current working directory is used
    as the relative directory.

    Previoulsy this would raise an `AssertionError`{.interpreted-text role="class"}.

-   [#&#8203;11475](https://togithub.com/pytest-dev/pytest/issues/11475): `--import-mode=importlib <import-mode-importlib>`{.interpreted-text role="ref"} now tries to import modules using the standard import mechanism (but still without changing :py`sys.path`{.interpreted-text role="data"}), falling back to importing modules directly only if that fails.

    This means that installed packages will be imported under their canonical name if possible first, for example `app.core.models`, instead of having the module name always be derived from their path (for example `.env310.lib.site_packages.app.core.models`).

-   [#&#8203;11801](https://togithub.com/pytest-dev/pytest/issues/11801): Added the `iter_parents() <_pytest.nodes.Node.iter_parents>`{.interpreted-text role="func"} helper method on nodes.
    It is similar to `listchain <_pytest.nodes.Node.listchain>`{.interpreted-text role="func"}, but goes from bottom to top, and returns an iterator, not a list.

-   [#&#8203;11850](https://togithub.com/pytest-dev/pytest/issues/11850): Added support for `sys.last_exc`{.interpreted-text role="data"} for post-mortem debugging on Python>=3.12.

-   [#&#8203;11962](https://togithub.com/pytest-dev/pytest/issues/11962): In case no other suitable candidates for configuration file are found, a `pyproject.toml` (even without a `[tool.pytest.ini_options]` table) will be considered as the configuration file and define the `rootdir`.

-   [#&#8203;11978](https://togithub.com/pytest-dev/pytest/issues/11978): Add `--log-file-mode` option to the logging plugin, enabling appending to log-files. This option accepts either `"w"` or `"a"` and defaults to `"w"`.

    Previously, the mode was hard-coded to be `"w"` which truncates the file before logging.

-   [#&#8203;12047](https://togithub.com/pytest-dev/pytest/issues/12047): When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.
    Previously, only the first exception was reported.

## Bug Fixes

-   [#&#8203;11904](https://togithub.com/pytest-dev/pytest/issues/11904): Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using `--pyargs`.

    This change improves the collection tree for tests specified using `--pyargs`, see `12043`{.interpreted-text role="pull"} for a comparison with pytest 8.0 and <8.

-   [#&#8203;12011](https://togithub.com/pytest-dev/pytest/issues/12011): Fixed a regression in 8.0.1 whereby `setup_module` xunit-style fixtures are not executed when `--doctest-modules` is passed.

-   [#&#8203;12014](https://togithub.com/pytest-dev/pytest/issues/12014): Fix the `stacklevel` used when warning about marks used on fixtures.

-   [#&#8203;12039](https://togithub.com/pytest-dev/pytest/issues/12039): Fixed a regression in `8.0.2` where tests created using `tmp_path`{.interpreted-text role="fixture"} have been collected multiple times in CI under Windows.

## Improved Documentation

-   [#&#8203;11790](https://togithub.com/pytest-dev/pytest/issues/11790): Documented the retention of temporary directories created using the `tmp_path` fixture in more detail.

## Trivial/Internal Changes

-   [#&#8203;11785](https://togithub.com/pytest-dev/pytest/issues/11785): Some changes were made to private functions which may affect plugins which access them:
    -   `FixtureManager._getautousenames()` now takes a `Node` itself instead of the nodeid.
    -   `FixtureManager.getfixturedefs()` now takes the `Node` itself instead of the nodeid.
    -   The `_pytest.nodes.iterparentnodeids()` function is removed without replacement.
        Prefer to traverse the node hierarchy itself instead.
        If you really need to, copy the function from the previous pytest release.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjI3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiXX0=-->
  • Loading branch information
cq-bot committed Apr 1, 2024
1 parent c37fd64 commit 986eced
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"pluggy==1.4.0",
"protobuf==4.25.3",
"pyarrow==15.0.2",
"pytest==8.0.2",
"pytest==8.1.1",
"python-dateutil==2.8.2",
"pytz==2023.4",
"six==1.16.0",
Expand Down

0 comments on commit 986eced

Please sign in to comment.