Source: python-boltons
Version: 24.0.0-1
Severity: normal
User: debian-pyt...@lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/mahmoud/boltons/issues/365

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

tests/test_tbutils_parsed_exc.py ...                                     [ 68%]
tests/test_timeutils.py ....                                             [ 69%]
tests/test_typeutils.py ..                                               [ 70%]
tests/test_urlutils.py ................................................. [ 81%]
........................................................................ [ 99%]
...                                                                      [100%]

=================================== FAILURES ===================================
_____________________________ test_exception_info ______________________________

    def test_exception_info():
        # test ExceptionInfo and TracebackInfo and hooks, via StringIOs
        builtin_exc_hook = sys.excepthook
        fix_print_exception()
        tbi_str = ''
    
        def test():
            raise ValueError('yay fun')
    
        fake_stderr1 = StringIO()
        fake_stderr2 = StringIO()
        sys.stderr = fake_stderr1
    
        try:
            test()
        except:
            _, _, exc_traceback = sys.exc_info()
            tbi = TracebackInfo.from_traceback(exc_traceback)
            exc_info = ExceptionInfo.from_exc_info(*sys.exc_info())
            exc_info2 = ExceptionInfo.from_current()
            tbi_str = str(tbi)
            print_exception(*sys.exc_info(), file=fake_stderr2)
            new_exc_hook_res = fake_stderr2.getvalue()
            builtin_exc_hook(*sys.exc_info())
            builtin_exc_hook_res = fake_stderr1.getvalue()
        finally:
            sys.stderr = sys.__stderr__
    
        # Single frame
        single_frame_str = tbi.frames[-1].tb_frame_str()
        assert 'in test' in single_frame_str
        assert 'yay fun' in single_frame_str
    
        # Traceback info
        assert len(tbi_str.splitlines()) == 5
        assert 'yay fun' in tbi_str
    
        # Full except hook output
        assert 'ValueError: yay fun' in new_exc_hook_res
        assert "ValueError('yay fun')" in new_exc_hook_res
        assert len(new_exc_hook_res) > len(tbi_str)
    
>       assert new_exc_hook_res == builtin_exc_hook_res
E       assert 'Traceback (m...or: yay fun\n' == 'Traceback (m...or: yay fun\n'
E         
E         Skipping 190 identical leading characters in diff, use -v to show
E            test()
E         -     ~~~~^^
E             File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/tests/test_tbutils.py", 
line 21, in test
E               raise ValueError('yay fun')
E           ValueError: yay fun

tests/test_tbutils.py:56: AssertionError
=============================== warnings summary ===============================
tests/conftest.py:8
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/tests/conftest.py:8: 
PytestRemovedIn9Warning: The (path: py.path.local) argument is deprecated, 
please use (collection_path: pathlib.Path)
  see 
https://docs.pytest.org/en/latest/deprecations.html#py-path-local-arguments-for-hooks-replaced-with-pathlib-path
    def pytest_ignore_collect(path, config):

boltons/ecoutils.py:259
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/boltons/ecoutils.py:259: 
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
    return datetime.datetime.utcnow()

boltons/timeutils.py:426
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build/boltons/timeutils.py:426: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    EPOCH_NAIVE = datetime.utcfromtimestamp(0)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_tbutils.py::test_exception_info - assert 'Traceback (m...or...
================== 1 failed, 415 passed, 3 warnings in 8.85s ===================
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_boltons/build; python3.13 -m pytest 
tests
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build; 
python3.12 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build
configfile: pytest.ini
plugins: typeguard-4.3.0
collected 416 items

tests/test_cacheutils.py ..................                              [  4%]
tests/test_debugutils_trace.py ......                                    [  5%]
tests/test_dictutils.py ...........................                      [ 12%]
tests/test_ecoutils.py ..                                                [ 12%]
tests/test_fileutils.py .                                                [ 12%]
tests/test_formatutils.py .....                                          [ 14%]
tests/test_funcutils.py .....                                            [ 15%]
tests/test_funcutils_fb.py ...............                               [ 18%]
tests/test_funcutils_fb_py3.py ......................                    [ 24%]
tests/test_gcutils.py ..                                                 [ 24%]
tests/test_ioutils.py .................................................. [ 36%]
................................                                         [ 44%]
tests/test_iterutils.py ........................................         [ 54%]
tests/test_jsonutils.py ..                                               [ 54%]
tests/test_listutils.py ..                                               [ 55%]
tests/test_mathutils.py ...........                                      [ 57%]
tests/test_namedutils.py ...                                             [ 58%]
tests/test_queueutils.py ..                                              [ 58%]
tests/test_setutils.py .....                                             [ 60%]
tests/test_socketutils.py ...........                                    [ 62%]
tests/test_statsutils.py .                                               [ 62%]
tests/test_statsutils_histogram.py ..                                    [ 63%]
tests/test_strutils.py ..............                                    [ 66%]
tests/test_tableutils.py ...                                             [ 67%]
tests/test_tbutils.py ..                                                 [ 68%]
tests/test_tbutils_parsed_exc.py ...                                     [ 68%]
tests/test_timeutils.py ....                                             [ 69%]
tests/test_typeutils.py ..                                               [ 70%]
tests/test_urlutils.py ................................................. [ 81%]
........................................................................ [ 99%]
...                                                                      [100%]

=============================== warnings summary ===============================
tests/conftest.py:8
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/tests/conftest.py:8: 
PytestRemovedIn9Warning: The (path: py.path.local) argument is deprecated, 
please use (collection_path: pathlib.Path)
  see 
https://docs.pytest.org/en/latest/deprecations.html#py-path-local-arguments-for-hooks-replaced-with-pathlib-path
    def pytest_ignore_collect(path, config):

boltons/ecoutils.py:259
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/boltons/ecoutils.py:259: 
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
    return datetime.datetime.utcnow()

boltons/timeutils.py:426
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_boltons/build/boltons/timeutils.py:426: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    EPOCH_NAIVE = datetime.utcfromtimestamp(0)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
======================= 416 passed, 3 warnings in 2.40s ========================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-18T22:51:41Z


If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/781375/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano

Reply via email to