[Debian-med-packaging] Bug#997503: python-easydev: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.9 returned exit code 13

Lucas Nussbaum lucas at debian.org
Sat Oct 23 21:40:31 BST 2021


Source: python-easydev
Version: 0.10.1+dfsg-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20211023 ftbfs-bookworm

Hi,

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


Relevant part (hopefully):
> dpkg-buildpackage
> -----------------
> 
> Command: dpkg-buildpackage -us -uc -sa -rfakeroot
> dpkg-buildpackage: info: source package python-easydev
> dpkg-buildpackage: info: source version 0.10.1+dfsg-1
> dpkg-buildpackage: info: source distribution unstable
> dpkg-buildpackage: info: source changed by Andreas Tille <tille at debian.org>
>  dpkg-source --before-build .
> dpkg-buildpackage: info: host architecture amd64
> dpkg-source: info: using options from python-easydev-0.10.1+dfsg/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/
>  debian/rules clean
> dh clean --with python3 --buildsystem=pybuild
>    dh_auto_clean -O--buildsystem=pybuild
> I: pybuild base:232: python3.9 setup.py clean 
> running clean
> removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build' (and everything under it)
> 'build/bdist.linux-x86_64' does not exist -- can't clean it
> 'build/scripts-3.9' does not exist -- can't clean it
>    dh_autoreconf_clean -O--buildsystem=pybuild
>    dh_clean -O--buildsystem=pybuild
>  dpkg-source -b .
> dpkg-source: info: using options from python-easydev-0.10.1+dfsg/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/
> dpkg-source: info: using source format '3.0 (quilt)'
> dpkg-source: info: building python-easydev using existing ./python-easydev_0.10.1+dfsg.orig.tar.xz
> dpkg-source: info: using patch list from debian/patches/series
> dpkg-source: info: building python-easydev in python-easydev_0.10.1+dfsg-1.debian.tar.xz
> dpkg-source: info: building python-easydev in python-easydev_0.10.1+dfsg-1.dsc
>  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:232: python3.9 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:232: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/chunks.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/dependencies.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/md5tools.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/decorators.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/options.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/copybutton.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/config_tools.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/easytest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/codecs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/logging_tools.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/misc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/profiler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/package.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/url.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/platform.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/progressbar.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/multicore.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/doc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/console.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/timer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/browser.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/paths.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/sphinx_themes.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> copying easydev/tools.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share
> copying easydev/share/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share
> running egg_info
> creating easydev.egg-info
> writing easydev.egg-info/PKG-INFO
> writing dependency_links to easydev.egg-info/dependency_links.txt
> writing entry points to easydev.egg-info/entry_points.txt
> writing requirements to easydev.egg-info/requires.txt
> writing top-level names to easydev.egg-info/top_level.txt
> writing manifest file 'easydev.egg-info/SOURCES.txt'
> reading manifest file 'easydev.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'COPYING'
> writing manifest file 'easydev.egg-info/SOURCES.txt'
> copying easydev/share/copybutton.js -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno
> copying easydev/share/themes/cno/index.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno
> copying easydev/share/themes/cno/indexsidebar.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno
> copying easydev/share/themes/cno/layout.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno
> copying easydev/share/themes/cno/theme.conf -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno/static
> copying easydev/share/themes/cno/static/bgfooter.png -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno/static
> copying easydev/share/themes/cno/static/bgtop.png -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno/static
> copying easydev/share/themes/cno/static/software.css_t -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno/static
> copying easydev/share/themes/cno/static/warning.jpg -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/cno/static
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard
> copying easydev/share/themes/standard/index.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard
> copying easydev/share/themes/standard/indexsidebar.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard
> copying easydev/share/themes/standard/layout.html -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard
> copying easydev/share/themes/standard/theme.conf -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard/static
> copying easydev/share/themes/standard/static/bgfooter.png -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard/static
> copying easydev/share/themes/standard/static/bgtop.png -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard/static
> copying easydev/share/themes/standard/static/software.css_t -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard/static
> copying easydev/share/themes/standard/static/warning.jpg -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev/share/themes/standard/static
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild pybuild:285: python3.9 /<<PKGBUILDDIR>>/setup.py egg_info -e /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build
> running egg_info
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info
> writing /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/PKG-INFO
> writing dependency_links to /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/dependency_links.txt
> writing entry points to /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/entry_points.txt
> writing requirements to /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/requires.txt
> writing top-level names to /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/top_level.txt
> writing manifest file '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/SOURCES.txt'
> reading manifest file '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'COPYING'
> writing manifest file '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build/easydev.egg-info/SOURCES.txt'
> I: pybuild base:232: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build; python3.9 -m pytest -k-test_url
> ============================= test session starts ==============================
> platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3.9
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg
> plugins: mock-3.6.1, cov-3.0.0
> collecting ... collected 59 items / 1 deselected / 58 selected
> 
> test/test_appdirs.py::test_app PASSED                                    [  1%]
> test/test_browse.py::test_browse PASSED                                  [  3%]
> test/test_browse.py::test_browse_module PASSED                           [  5%]
> test/test_chunks.py::test_chunks PASSED                                  [  6%]
> test/test_cnolab_sphinx.py::test_path PASSED                             [  8%]
> test/test_cnolab_sphinx.py::test_sphinx_themes PASSED                    [ 10%]
> test/test_codecs.py::test_tolist PASSED                                  [ 12%]
> test/test_codecs.py::test_tostring PASSED                                [ 13%]
> test/test_config.py::test_config_custom PASSED                           [ 15%]
> test/test_config.py::test_configExample PASSED                           [ 17%]
> test/test_config.py::test_ordered_dict_attribute PASSED                  [ 18%]
> test/test_config.py::test_DynamicConfig PASSED                           [ 20%]
> test/test_config.py::test_DynamicConfigDelete PASSED                     [ 22%]
> test/test_config.py::test_DynamicConfig_setter PASSED                    [ 24%]
> test/test_config.py::test_section2dict PASSED                            [ 25%]
> test/test_config.py::test_compare PASSED                                 [ 27%]
> test/test_console.py::test_get_terminal_width PASSED                     [ 29%]
> test/test_console.py::test_term_width_line PASSED                        [ 31%]
> test/test_console.py::test_color_terminal PASSED                         [ 32%]
> test/test_console.py::test_print_color PASSED                            [ 34%]
> test/test_copybutton.py::test_copybutton PASSED                          [ 36%]
> test/test_copybutton.py::test_copy_javascript_into_static_path PASSED    [ 37%]
> test/test_decorators.py::test_deco_pandas PASSED                         [ 39%]
> test/test_decorators.py::test_deco_pylab PASSED                          [ 41%]
> test/test_decorators.py::test PASSED                                     [ 43%]
> test/test_dependencies.py::test PASSED                                   [ 44%]
> test/test_doc.py::test_underline PASSED                                  [ 46%]
> test/test_easytest.py::test_trysetattr PASSED                            [ 48%]
> test/test_easytest.py::test_tempfile PASSED                              [ 50%]
> test/test_easytest.py::test_list_almost_equal PASSED                     [ 51%]
> test/test_logging_tools.py::test_logging FAILED                          [ 53%]
> test/test_md5.py::test_md5 PASSED                                        [ 55%]
> test/test_misc.py::test_get_home PASSED                                  [ 56%]
> test/test_misc.py::test_cmd_exists PASSED                                [ 58%]
> test/test_misc.py::test_in_ipynb PASSED                                  [ 60%]
> test/test_multicore.py::test_func PASSED                                 [ 62%]
> test/test_options.py::test PASSED                                        [ 63%]
> test/test_package.py::test_package PASSED                                [ 65%]
> test/test_package.py::test_options PASSED                                [ 67%]
> test/test_paths.py::test_get_share_directory_path PASSED                 [ 68%]
> test/test_paths.py::test_get_share_directories PASSED                    [ 70%]
> test/test_paths.py::test_get_share_file PASSED                           [ 72%]
> test/test_paths.py::test_gsf PASSED                                      [ 74%]
> test/test_platform.py::test_platform PASSED                              [ 75%]
> test/test_profiler.py::test_profile PASSED                               [ 77%]
> test/test_progressbar.py::test_progressbar PASSED                        [ 79%]
> test/test_timer.py::test_timer PASSED                                    [ 81%]
> test/test_tools.py::test_check_range PASSED                              [ 82%]
> test/test_tools.py::test_swapdict PASSED                                 [ 84%]
> test/test_tools.py::test_tools PASSED                                    [ 86%]
> test/test_tools.py::test_tools2 PASSED                                   [ 87%]
> test/test_tools.py::test_checkParams PASSED                              [ 89%]
> test/test_tools.py::test_check_param_in_list PASSED                      [ 91%]
> test/test_tools.py::test_precision PASSED                                [ 93%]
> test/test_tools.py::test_attrdict PASSED                                 [ 94%]
> test/test_tools.py::test_devtools PASSED                                 [ 96%]
> test/test_tools.py::test_mkdirs PASSED                                   [ 98%]
> test/test_tools.py::test_touch PASSED                                    [100%]
> 
> =================================== FAILURES ===================================
> _________________________________ test_logging _________________________________
> 
>     def test_logging():
>     
> >       l = Logging("INFO")
> 
> test/test_logging_tools.py:6: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> easydev/logging_tools.py:54: in __init__
>     self._set_name(name)
> easydev/logging_tools.py:65: in _set_name
>     self.level = "WARNING"
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = <easydev.logging_tools.Logging object at 0x7ff48a542f40>
> level = 'WARNING'
> 
>     def _set_level(self, level):
>         if isinstance(level, bool):
>             if level is True:
>                 level = "INFO"
>             if level is False:
>                 level = "ERROR"
>         assert level in ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"],\
>             "you provided {}".format(level)
> >       logging_level = getattr(colorlog.logging.logging, level)
> E       AttributeError: module 'colorlog' has no attribute 'logging'
> 
> easydev/logging_tools.py:80: AttributeError
> =============================== warnings summary ===============================
> ../../../../../../usr/lib/python3/dist-packages/_pytest/mark/__init__.py:264
>   /usr/lib/python3/dist-packages/_pytest/mark/__init__.py:264: PytestDeprecationWarning: The `-k '-expr'` syntax to -k is deprecated.
>   Use `-k 'not expr'` instead.
>     deselect_by_keyword(items, config)
> 
> -- Docs: https://docs.pytest.org/en/stable/warnings.html
> 
> ----------- coverage: platform linux, python 3.9.7-final-0 -----------
> Name                        Stmts   Miss  Cover   Missing
> ---------------------------------------------------------
> easydev/__init__.py            41      0   100%
> easydev/browser.py             10      1    90%   84
> easydev/chunks.py              10      0   100%
> easydev/codecs.py              26      1    96%   60
> easydev/config_tools.py       144     13    91%   55, 333, 336-341, 344-345, 435-439
> easydev/console.py             47      8    83%   44-45, 63, 72, 77-80
> easydev/copybutton.py          22      0   100%
> easydev/decorators.py          52     11    79%   46, 52, 70-74, 126, 150, 154, 168, 172
> easydev/dependencies.py        10      0   100%
> easydev/doc.py                  5      0   100%
> easydev/easytest.py            36      0   100%
> easydev/logging_tools.py       56     14    75%   67, 74-77, 81, 86, 88, 90, 92, 94, 100, 106, 108
> easydev/md5tools.py             8      0   100%
> easydev/misc.py                15      0   100%
> easydev/multicore.py           47      0   100%
> easydev/options.py              7      0   100%
> easydev/package.py            113     14    88%   242-243, 255, 262, 294, 358, 367, 398-409
> easydev/paths.py               47      4    91%   94, 114, 140, 146
> easydev/platform.py            16      0   100%
> easydev/profiler.py            17     13    24%   42-55
> easydev/progressbar.py         67      3    96%   101, 150, 201
> easydev/share/__init__.py       0      0   100%
> easydev/sphinx_themes.py       15      0   100%
> easydev/timer.py                2      0   100%
> easydev/tools.py              141     11    92%   156-157, 208-212, 276-277, 351-352, 356
> easydev/url.py                  6      0   100%
> ---------------------------------------------------------
> TOTAL                         960     93    90%
> 
> =========================== short test summary info ============================
> FAILED test/test_logging_tools.py::test_logging - AttributeError: module 'col...
> ============ 1 failed, 57 passed, 1 deselected, 1 warning in 3.47s =============
> E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_easydev/build; python3.9 -m pytest -k-test_url
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.9 returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2021/10/23/python-easydev_0.10.1+dfsg-1_unstable.log

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 marking 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.



More information about the Debian-med-packaging mailing list