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

Split test doesn't need to be executed per Python version #130147

Merged
merged 2 commits into from
Nov 8, 2024

Conversation

edenhaus
Copy link
Contributor

@edenhaus edenhaus commented Nov 8, 2024

Breaking change

Proposed change

Collecting will always report all tests, so no need to run it per Python version

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

@home-assistant home-assistant bot added cla-signed code-quality small-pr PRs with less than 30 lines. labels Nov 8, 2024
Copy link
Contributor

@emontnemery emontnemery left a comment

Choose a reason for hiding this comment

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

Nice!

@edenhaus edenhaus marked this pull request as ready for review November 8, 2024 17:04
@edenhaus edenhaus requested a review from a team as a code owner November 8, 2024 17:04
@edenhaus edenhaus merged commit a8db25f into dev Nov 8, 2024
45 of 46 checks passed
@edenhaus edenhaus deleted the edenhaus-no-matrix-for-split branch November 8, 2024 17:05
@cdce8p
Copy link
Member

cdce8p commented Nov 9, 2024

Collecting will always report all tests, so no need to run it per Python version

Not always. I've added that explicitly in #126936 as we usually can't install all dependencies when adding a new Python version to CI. E.g. for 3.12 we added a conditional imports and modified the test collection

if sys.version_info >= (3, 12):
     collect_ignore_glob = ["test_*.py"]

Doing the collection with another version than the actual test run would thus fail.

At the moment, this doesn't seem to be necessary for 3.13 (#129442). However, I believe it's safer to keep the previous implementation and run it for each supported Python version.

@cdce8p
Copy link
Member

cdce8p commented Nov 9, 2024

Looks like it's safe after all. I just needed to disable an integraion in #129442: a0eaddc and it looks like the tests still pass.
AFAICT it's because the test collection is run for each pytest job again anyway. So collect_ignore_glob = ["test_*.py"] will just trigger later. Going to close #130192 then.

@github-actions github-actions bot locked and limited conversation to collaborators Nov 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla-signed code-quality small-pr PRs with less than 30 lines.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants