Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump pytest from 7.4.4 to 8.1.1 #3396

Merged
merged 6 commits into from
Apr 8, 2024
Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 18, 2024

Bumps pytest from 7.4.4 to 8.1.1.

Release notes

Sourced from pytest's releases.

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

  • #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 when importing modules.

  • #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

  • #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 #103577](python/cpython#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.

  • #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"}.

  • #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 :pysys.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).

  • #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.

  • #11850: Added support for sys.last_exc{.interpreted-text role="data"} for post-mortem debugging on Python>=3.12.

  • #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.

  • #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.

... (truncated)

Commits
  • 81653ee Adjust changelog manually for 8.1.1
  • e60b4b9 Prepare release version 8.1.1
  • 15fbe57 [8.1.x] Revert legacy path removals (#12093)
  • 86c3aab [8.1.x] Do not import duplicated modules with --importmode=importlib (#12077)
  • 5b82b0c [8.1.x] Yank version 8.1.0 (#12076)
  • 0a53681 Merge pull request #12054 from pytest-dev/release-8.1.0
  • b9a167f Prepare release version 8.1.0
  • 00043f7 Merge pull request #12038 from bluetech/fixtures-rm-arg2index
  • f4e1025 Merge pull request #12048 from bluetech/fixture-teardown-excgroup
  • 43492f5 Merge pull request #12051 from jakkdl/test_debugging_pythonbreakpoint
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Notes from @alexcottner
Introducing pytest v8+ causes some issues because it runs the tests in a different order. This also revealed that we have a lot of tests that cause side effects and have dependencies on each other. Created issue #3401 as a followup.

@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Mar 18, 2024
@dependabot dependabot bot force-pushed the dependabot/pip/pytest-8.1.1 branch from 3dae865 to 7b90dc7 Compare March 19, 2024 10:28
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.4 to 8.1.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@7.4.4...8.1.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/pip/pytest-8.1.1 branch from 7b90dc7 to c129d5f Compare March 26, 2024 17:45
@leplatrem
Copy link
Contributor

=========================== short test summary info ============================
FAILED tests/core/test_logging.py::RequestSummaryTest::test_headers_and_body_when_level_is_debug - AssertionError: {'Host': 'localhost:80', 'Content-Type': 'a[143 chars]GET'} != {'Authorization': 'Basic bWF0OnNlY3JldA==',[79 chars]:80'}
- {'Access-Control-Request-Method': 'GET',
-  'Authorization': 'Basic bWF0OnNlY3JldA==',
? ^

+ {'Authorization': 'Basic bWF0OnNlY3JldA==',
? ^

   'Content-Length': '11',
   'Content-Type': 'application/json',
-  'Host': 'localhost:80',
?                        ^

+  'Host': 'localhost:80'}
?                        ^

-  'Origin': 'lolnet.org'}
FAILED tests/core/test_views_version.py::VersionViewTest::test_return_a_500_if_version_file_if_not_present - webtest.app.AppError: Bad response: 200 OK (not 500)
b'{"name": "kinto", "version": "869e342", "source": "https://github.com/Kinto/kinto", "commit": "869e3429af6757135069530f156f3cb655a835d4"}'
==== 2 failed, 1709 passed, 376 skipped, 7432 warnings in 125.45s (0:02:05) ====

@alexcottner
Copy link
Contributor

I suspect this is due to test ordering changes starting in pytest v8. I ran into the same problem recently. Will take this on.

@alexcottner alexcottner self-assigned this Mar 28, 2024
@alexcottner
Copy link
Contributor

Made the simplest changes I could think of to get us past the v8 upgrade issue. Created #3401 as a followup issue (more like epic) for us to work through.

@leplatrem
Copy link
Contributor

Awesome @alexcottner thank you 🎉

@@ -25,8 +25,9 @@ help:
@echo " migrate run the kinto migrations"
@echo " lint run the code linters"
@echo " tests run all the tests with all the supported python interpreters (same as CI)"
@echo " test-deps pulls and runs docker postgres and memcached containers for tests"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be mentioned in contribution docs?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Making a small change to community.rst, but we probably need to give everything a once over. I saw some dated communication channels in there.

@alexcottner alexcottner merged commit 4d60ab2 into main Apr 8, 2024
19 checks passed
@alexcottner alexcottner deleted the dependabot/pip/pytest-8.1.1 branch April 8, 2024 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants