Skip to content

test_get_version_for_package and test_log_versions_unresolvable_version_logs_unknown are flaky #73

Description

@sanvila

Hello. This was reported to Debian here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1143373

Summary: The Debian package for version 2026.6.24 fails to build randomly due to this failing tests:

=================================== FAILURES ===================================
_________________________ test_get_version_for_package _________________________

    def test_get_version_for_package():
        """should track version if package is a module"""
        import numpy as np
    
        got = get_version_for_package(np)
        assert got == np.__version__
        # one with a callable
        pyfile = TEST_ROOTDIR / "delme.py"
        pyfile.write_text("def version():\n  return 'my-version'")
        sys.path.append(TEST_ROOTDIR)
>       import delme
E       ModuleNotFoundError: No module named 'delme'

tests/test_logging.py:342: ModuleNotFoundError

It looks like the test writes delme.py to a directory in the python import path and expects it to be immediately available, which may or may not happen due to caching issues.

Sometimes the failing test is this other one:

=================================== FAILURES ===================================
_____________ test_log_versions_unresolvable_version_logs_unknown ______________

logfile = PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_log_versions_unresolvable0/delme.log')

    def test_log_versions_unresolvable_version_logs_unknown(logfile):
        # a module with no version attribute -> version None normalised to UNKNOWN
        pyfile = TEST_ROOTDIR / "delme_nover.py"
        pyfile.write_text("answer = 42\n")
        sys.path.append(str(TEST_ROOTDIR))
>       import delme_nover
E       ModuleNotFoundError: No module named 'delme_nover'

tests/test_logging.py:377: ModuleNotFoundError

The test failures happen randomly, but I can offer a VM to reproduce this randomness if required.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions