Source: python-lti
Version: 0.9.5-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20231212 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:310: python3.12 setup.py config 
> running config
> I: pybuild base:310: python3.11 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:310: /usr/bin/python3.12 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/utils.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/outcome_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_base.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_config.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_outbound.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_consumer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/outcome_response.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_proxy.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/launch_params.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/contentitem_response.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> copying src/lti/tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib
> copying src/lti/contrib/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/flask
> copying src/lti/contrib/flask/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/flask
> copying src/lti/contrib/flask/flask_tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/flask
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/django
> copying src/lti/contrib/django/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/django
> copying src/lti/contrib/django/django_tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build/lti/contrib/django
> I: pybuild base:310: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/utils.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/outcome_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_base.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_config.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_outbound.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_consumer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/outcome_response.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_proxy.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/launch_params.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/contentitem_response.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> copying src/lti/tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib
> copying src/lti/contrib/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/flask
> copying src/lti/contrib/flask/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/flask
> copying src/lti/contrib/flask/flask_tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/flask
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/django
> copying src/lti/contrib/django/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/django
> copying src/lti/contrib/django/django_tool_provider.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/lti/contrib/django
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build; 
> python3.12 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> collected 66 items
> 
> tests/test_contentitem_response.py F....                                 [  
> 7%]
> tests/test_launch_params.py FF....                                       [ 
> 16%]
> tests/test_outcome_request.py ......                                     [ 
> 25%]
> tests/test_outcome_response.py .....                                     [ 
> 33%]
> tests/test_tool_base.py ........                                         [ 
> 45%]
> tests/test_tool_config.py ......                                         [ 
> 54%]
> tests/test_tool_consumer.py F.....                                       [ 
> 63%]
> tests/test_tool_provider.py ...................                          [ 
> 92%]
> tests/test_tool_proxy.py .....                                           
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ___________________ TestContentItemResponse.test_constructor 
> ___________________
> 
> self = <test_contentitem_response.TestContentItemResponse 
> testMethod=test_constructor>
> 
>     def test_constructor(self):
>         client_id = generate_client_id()
>         client_secret = generate_token()
>         tc = ContentItemResponse(client_id, client_secret,
>                           launch_url='http://example.edu')
>         self.assertIsInstance(tc.launch_params, LaunchParams)
>     
>         lp = LaunchParams()
>         tc = ContentItemResponse(client_id, client_secret,
>                           launch_url='http://example.edu', params=lp)
>         self.assertEqual(tc.launch_params, lp)
>     
>         lp_dict = {'resource_link_id': 1}
>         tc = ContentItemResponse(client_id, client_secret,
>                           launch_url='http://example.edu',
>                           params=lp_dict)
>         self.assertIsInstance(tc.launch_params, LaunchParams)
>         self.assertEqual(tc.launch_params._params.get('resource_link_id'), 1)
>     
>         # no launch_url should raise exception
> >       self.failUnlessRaises(InvalidLTIConfigError, ContentItemResponse,
>                               client_id, client_secret,
>                               params=lp_dict)
> E       AttributeError: 'TestContentItemResponse' object has no attribute 
> 'failUnlessRaises'
> 
> tests/test_contentitem_response.py:33: AttributeError
> ______________________ TestLaunchParams.test_constructor 
> _______________________
> 
> self = <test_launch_params.TestLaunchParams testMethod=test_constructor>
> 
>     def test_constructor(self):
>         lp = LaunchParams()
>         self.assertTrue(lp['lti_version'], DEFAULT_LTI_VERSION)
>         self.assertTrue(lp['lti_message_type'], 'basic-lti-launch-request')
>     
>         lp = LaunchParams({
>             'lti_version': 'LTI-foo',
>             'lti_message_type': 'bar',
>             'resource_link_id': 123
>         })
>         self.assertTrue(lp['resource_link_id'], 123)
>         self.assertTrue(lp['lti_version'], 'LTI-foo')
>     
> >       self.failUnlessRaises(InvalidLaunchParamError, LaunchParams, {
>             'foo': 'bar'
>         })
> E       AttributeError: 'TestLaunchParams' object has no attribute 
> 'failUnlessRaises'
> 
> tests/test_launch_params.py:21: AttributeError
> _____________________ TestLaunchParams.test_dict_behavior 
> ______________________
> 
> self = <test_launch_params.TestLaunchParams testMethod=test_dict_behavior>
> 
>     def test_dict_behavior(self):
>     
>         lp = LaunchParams({
>             'lti_version': 'foo',
>             'lti_message_type': 'bar'
>         })
>         self.assertEqual(len(lp), 2)
>         lp.update({'resource_link_id': 1})
>         self.assertEqual(len(lp), 3)
>     
> >       self.failUnlessRaises(InvalidLaunchParamError, lp.update, {
>             'foo': 'bar'
>         })
> E       AttributeError: 'TestLaunchParams' object has no attribute 
> 'failUnlessRaises'
> 
> tests/test_launch_params.py:69: AttributeError
> ______________________ TestToolConsumer.test_constructor 
> _______________________
> 
> self = <test_tool_consumer.TestToolConsumer testMethod=test_constructor>
> 
>     def test_constructor(self):
>         client_id = generate_client_id()
>         client_secret = generate_token()
>         tc = ToolConsumer(client_id, client_secret,
>                           launch_url='http://example.edu')
>         self.assertIsInstance(tc.launch_params, LaunchParams)
>     
>         lp = LaunchParams()
>         tc = ToolConsumer(client_id, client_secret,
>                           launch_url='http://example.edu', params=lp)
>         self.assertEqual(tc.launch_params, lp)
>     
>         lp_dict = {'resource_link_id': 1}
>         tc = ToolConsumer(client_id, client_secret,
>                           launch_url='http://example.edu',
>                           params=lp_dict)
>         self.assertIsInstance(tc.launch_params, LaunchParams)
>         self.assertEqual(tc.launch_params._params.get('resource_link_id'), 1)
>     
>         # no launch_url should raise exception
> >       self.failUnlessRaises(InvalidLTIConfigError, ToolConsumer,
>                               client_id, client_secret,
>                               params=lp_dict)
> E       AttributeError: 'TestToolConsumer' object has no attribute 
> 'failUnlessRaises'
> 
> tests/test_tool_consumer.py:33: AttributeError
> =========================== short test summary info 
> ============================
> FAILED 
> tests/test_contentitem_response.py::TestContentItemResponse::test_constructor
> FAILED tests/test_launch_params.py::TestLaunchParams::test_constructor - 
> Attr...
> FAILED tests/test_launch_params.py::TestLaunchParams::test_dict_behavior - 
> At...
> FAILED tests/test_tool_consumer.py::TestToolConsumer::test_constructor - 
> Attr...
> ========================= 4 failed, 62 passed in 0.68s 
> =========================
> E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_lti/build; python3.12 -m pytest tests
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build; 
> python3.11 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> collected 66 items
> 
> tests/test_contentitem_response.py .....                                 [  
> 7%]
> tests/test_launch_params.py ......                                       [ 
> 16%]
> tests/test_outcome_request.py ......                                     [ 
> 25%]
> tests/test_outcome_response.py .....                                     [ 
> 33%]
> tests/test_tool_base.py ........                                         [ 
> 45%]
> tests/test_tool_config.py ......                                         [ 
> 54%]
> tests/test_tool_consumer.py ......                                       [ 
> 63%]
> tests/test_tool_provider.py ...................                          [ 
> 92%]
> tests/test_tool_proxy.py .....                                           
> [100%]
> 
> =============================== warnings summary 
> ===============================
> .pybuild/cpython3_3.11_lti/build/tests/test_contentitem_response.py::TestContentItemResponse::test_constructor
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/tests/test_contentitem_response.py:33:
>  DeprecationWarning: Please use assertRaises instead.
>     self.failUnlessRaises(InvalidLTIConfigError, ContentItemResponse,
> 
> .pybuild/cpython3_3.11_lti/build/tests/test_launch_params.py::TestLaunchParams::test_constructor
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/tests/test_launch_params.py:21:
>  DeprecationWarning: Please use assertRaises instead.
>     self.failUnlessRaises(InvalidLaunchParamError, LaunchParams, {
> 
> .pybuild/cpython3_3.11_lti/build/tests/test_launch_params.py::TestLaunchParams::test_dict_behavior
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/tests/test_launch_params.py:69:
>  DeprecationWarning: Please use assertRaises instead.
>     self.failUnlessRaises(InvalidLaunchParamError, lp.update, {
> 
> .pybuild/cpython3_3.11_lti/build/tests/test_tool_consumer.py::TestToolConsumer::test_constructor
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_lti/build/tests/test_tool_consumer.py:33:
>  DeprecationWarning: Please use assertRaises instead.
>     self.failUnlessRaises(InvalidLTIConfigError, ToolConsumer,
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> ======================== 66 passed, 4 warnings in 0.43s 
> ========================
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
> 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/12/12/python-lti_0.9.5-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to