Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

We don't run test_lazy_imports #145334

Copy link
Copy link
@johnslavik

Description

@johnslavik
Issue body actions

Bug report

Bug description:

This is Lib.test.test_import:

Lib/test/test_import
├── __init__.py
├── __main__.py
├── data
└── test_lazy_imports.py

Our test finder doesn't see test_lazy_imports: #144852 (comment).

python -m test does not run test_lazy_imports at all.

We could try to keep regular import test package with lazy import test package by:

  1. Updating Lib.test.libregrtest.findtests.SPLITTESTDIRS to include test_import.
  2. Moving Lib/test/test_import/__init__.py to Lib/test/test_import/test_import.py .
  3. Creating a new Lib/test/test_import/__init__.py that defines load_tests hook that calls load_package_tests.

It is visible by now that this is a can of worms. Lib.test.test_import uses relative imports itself, so moving Lib.test.test_import to Lib.test.test_import.test_import breaks them. This means we'd need to massage Lib.test.test_import.test_import to work again, which means we'd need to modify old tests -- which I think on its own disqualifies this approach.

We can't have Lib.test.test_import and Lib.test.test_import.test_lazy_imports at the same time set up in a maintainable way, because it would involve having manual registration of test suites in test_import (or maybe in test_lazy_imports?). Perhaps we can do this cheaply, but I assume this makes these tests less self-contained and complicates the setup.

I propose we move Lib/test/test_import/test_lazy_imports.py (+data) into Lib/test/test_lazy_import/__init__.py (+data). Unless there is any other cost-effective solution to this that I've missed?

CC @pablogsal @DinoV @brittanyrey @Yhg1s @vstinner @sobolevn

CPython versions tested on:

CPython main branch

Operating systems tested on:

No response

Linked PRs

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.15pre-release feature fixes, bugs and security fixespre-release feature fixes, bugs and security fixesinfraCI, GitHub Actions, buildbots, Dependabot, etc.CI, GitHub Actions, buildbots, Dependabot, etc.testsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.