Bug 2423874

Summary: python-pygments: FTBFS in Fedora Rawhide: AssertionError: Example file /builddir/build/BUILD/python-pygments-2.19.1-build/BUILDROOT/usr/lib/python3.14/site-packages/tests/examplefiles/tcshcon/session not found
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: python-pygmentsAssignee: Karolina Surma <ksurma>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: ksurma, mhroncok, python-packagers-sig
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://koschei.fedoraproject.org/package/python-pygments
Whiteboard:
Fixed In Version: python-pygments-2.19.1-8.fc44 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-01-14 11:08:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2384424, 2412434    

Description Karolina Surma 2025-12-19 14:12:02 UTC
Description of problem:
Package python-pygments fails to build from source in Fedora Rawhide.

Version-Release number of selected component (if applicable):
2.19.1-7.fc44

Steps to Reproduce:
koji build --scratch f44 python-pygments-2.19.1-7.fc44.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-pygments

Something has changed in the underlying dependencies, maybe hatchling?

Reproducible: Always

Actual Results:
_____________________ test_lexer_classes[TcshSessionLexer] _____________________
cls = <class 'pygments.lexers.shell.TcshSessionLexer'>
    @pytest.mark.parametrize('cls', lexers._iter_lexerclasses(plugins=False))
    def test_lexer_classes(cls):
        # test that every lexer class has the correct public API
        assert isinstance(cls.name, str)
        for attr in 'aliases', 'filenames', 'alias_filenames', 'mimetypes':
            assert hasattr(cls, attr)
            assert isinstance(getattr(cls, attr), list), \
                f"{cls}: {attr} attribute wrong"
        assert isinstance(cls.url, str), \
            (f"Lexer class {cls.__name__} is missing the `url` attribute. "
             "Please add it to provide a link to the language's homepage "
             "for the Pygments documentation (or set it to an empty "
             "string if this doesn't make sense for the lexer).")
        assert isinstance(cls.version_added, str), \
            (f"Lexer class {cls.__name__} is missing the `version_added` attribute. "
             f"Please add `version_added = '{major}.{minor+1}'` to the class definition.")
        if cls.version_added:
            assert re.fullmatch(r"\d+\.\d+", cls.version_added), \
                (f"Lexer class {cls.__name__} has a wrong version_added attribute. "
                 "It should be a version number like <major>.<minor> (but not "
                 "<major>.<minor>.<micro>).")
        if cls._example is not None:
            assert isinstance(cls._example, str)
            p = (
                pathlib.Path(inspect.getabsfile(pygments)).parent.parent
                / "tests"
                / "examplefiles"
                / cls._example
            )
>           assert p.is_file(), f"Example file {p} not found"
E           AssertionError: Example file /builddir/build/BUILD/python-pygments-2.19.1-build/BUILDROOT/usr/lib/python3.14/site-packages/tests/examplefiles/tcshcon/session not found
E           assert False
E            +  where False = is_file()
E            +    where is_file = PosixPath('/builddir/build/BUILD/python-pygments-2.19.1-build/BUILDROOT/usr/lib/python3.14/site-packages/tests/examplefiles/tcshcon/session').is_file
tests/test_basic_api.py:71: AssertionError
=========================== short test summary info ============================
FAILED tests/test_basic_api.py::test_lexer_classes[BashSessionLexer] - Assert...
FAILED tests/test_basic_api.py::test_lexer_classes[DylanConsoleLexer] - Asser...
FAILED tests/test_basic_api.py::test_lexer_classes[GAPConsoleLexer] - Asserti...
FAILED tests/test_basic_api.py::test_lexer_classes[JuliaConsoleLexer] - Asser...
FAILED tests/test_basic_api.py::test_lexer_classes[MSDOSSessionLexer] - Asser...
FAILED tests/test_basic_api.py::test_lexer_classes[MatlabSessionLexer] - Asse...
FAILED tests/test_basic_api.py::test_lexer_classes[OutputLexer] - AssertionEr...
FAILED tests/test_basic_api.py::test_lexer_classes[PostgresConsoleLexer] - As...
FAILED tests/test_basic_api.py::test_lexer_classes[PowerShellSessionLexer] - ...
FAILED tests/test_basic_api.py::test_lexer_classes[RConsoleLexer] - Assertion...
FAILED tests/test_basic_api.py::test_lexer_classes[RubyConsoleLexer] - Assert...
FAILED tests/test_basic_api.py::test_lexer_classes[SqliteConsoleLexer] - Asse...
FAILED tests/test_basic_api.py::test_lexer_classes[TcshSessionLexer] - Assert...
================= 13 failed, 5162 passed, 16 skipped in 12.92s =================

Comment 1 Karolina Surma 2026-01-14 11:08:56 UTC
Solved by https://src.fedoraproject.org/rpms/python-pygments/pull-request/35