[Debian-med-packaging] Bug#982699: intake: 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 Feb 13 17:12:24 GMT 2021
Source: intake
Version: 0.6.0-4
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20210213 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_install
> # For some reason, not all data is movable via install or dh_install, so
> # just force copy (and overwrite if needed) for pytest to actually work
> for py in `py3versions -sv` ; do cp -a intake/source/tests .pybuild/cpython3_${py}_intake/build/intake/source; done
> PYBUILD_SYSTEM=custom \
> PYBUILD_TEST_ARGS='cd {build_dir}; PATH=/<<PKGBUILDDIR>>/debian/{package}/usr/bin:/<<PKGBUILDDIR>>/debian/{package}/usr/lib:/<<PKGBUILDDIR>>/debian/{package}/build/intake:$PATH {interpreter} -m pytest' \
> dh_auto_test --buildsystem=pybuild
> I: pybuild base:232: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build; PATH=/<<PKGBUILDDIR>>/debian/python3-intake/usr/bin:/<<PKGBUILDDIR>>/debian/python3-intake/usr/lib:/<<PKGBUILDDIR>>/debian/python3-intake/build/intake:$PATH python3.9 -m pytest
> ============================= test session starts ==============================
> platform linux -- Python 3.9.1+, pytest-6.0.2, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 371 items / 9 skipped / 362 selected
>
> intake/auth/tests/test_auth.py ...... [ 1%]
> intake/catalog/tests/test_alias.py .. [ 2%]
> intake/catalog/tests/test_auth_integration.py .. [ 2%]
> intake/catalog/tests/test_caching_integration.py .................. [ 7%]
> intake/catalog/tests/test_core.py . [ 7%]
> intake/catalog/tests/test_default.py . [ 8%]
> intake/catalog/tests/test_discovery.py . [ 8%]
> intake/catalog/tests/test_gui.py ..s..s [ 9%]
> intake/catalog/tests/test_local.py ..................................... [ 19%]
> ................................................. [ 33%]
> intake/catalog/tests/test_parameters.py ............ [ 36%]
> intake/catalog/tests/test_persist.py .s [ 36%]
> intake/catalog/tests/test_reload_integration.py .... [ 38%]
> intake/catalog/tests/test_remote_integration.py ........................ [ 44%]
> ... [ 45%]
> intake/catalog/tests/test_utils.py ....... [ 47%]
> intake/catalog/tests/test_zarr.py ... [ 47%]
> intake/cli/client/tests/test_cache.py ...... [ 49%]
> intake/cli/client/tests/test_conf.py ..... [ 50%]
> intake/cli/client/tests/test_local_integration.py ......... [ 53%]
> intake/cli/server/tests/test_serializer.py sss......... [ 56%]
> intake/cli/server/tests/test_server.py ......ss.. [ 59%]
> intake/cli/tests/test_util.py ........ [ 61%]
> intake/container/tests/test_generics.py . [ 61%]
> intake/container/tests/test_persist.py ...s [ 62%]
> intake/gui/tests/test_init_gui.py ..s [ 63%]
> intake/source/tests/test_base.py ................. [ 68%]
> intake/source/tests/test_cache.py ...............s [ 72%]
> intake/source/tests/test_csv.py ......FFF..s.. [ 76%]
> intake/source/tests/test_discovery.py ...... [ 77%]
> intake/source/tests/test_npy.py ........... [ 80%]
> intake/source/tests/test_text.py .................. [ 85%]
> intake/source/tests/test_utils.py ............................... [ 94%]
> intake/tests/test_config.py ........ [ 96%]
> intake/tests/test_top_level.py ......s. [ 98%]
> intake/tests/test_utils.py ...... [100%]
>
> =================================== FAILURES ===================================
> ______________________________ test_read_pattern _______________________________
>
> sample_pattern_datasource = sources:
> csv:
> args:
> urlpath: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/source/tests/sample{num:d}_{dup:d}.csv
> description: ''
> driver: intake.source.csv.CSVSource
> metadata: {}
>
>
> def test_read_pattern(sample_pattern_datasource):
> da = sample_pattern_datasource.to_dask()
> assert set(da.num.cat.categories) == {2, 3}
> assert set(da.dup.cat.categories) == {1, 2}
> > check_read_pattern_output(sample_pattern_datasource)
>
> intake/source/tests/test_csv.py:156:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> source = sources:
> csv:
> args:
> urlpath: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/source/tests/sample{num:d}_{dup:d}.csv
> description: ''
> driver: intake.source.csv.CSVSource
> metadata: {}
>
>
> def check_read_pattern_output(source):
> da = source.to_dask()
> assert da.num.cat.known is True
> assert da.dup.cat.known is True
>
> # check that first partition has correct num and dup; which file
> # it represents is not guaranteed
> df0 = da.get_partition(0).compute()
> if df0['name'][0].endswith('1'):
> > assert all(df0.num == 2)
> E assert False
> E + where False = all(0 3\n1 3\n2 3\n3 3\nName: num, dtype: category\nCategories (2, int64): [2, 3] == 2)
> E + where 0 3\n1 3\n2 3\n3 3\nName: num, dtype: category\nCategories (2, int64): [2, 3] = name score rank num dup\n0 Alice1 100.5 1 3 2\n1 Bob1 50.3 2 3 2\n2 Charlie1 25.0 3 3 2\n3 Eve1 25.0 3 3 2.num
>
> intake/source/tests/test_csv.py:119: AssertionError
> _________________________ test_read_pattern_with_cache _________________________
>
> sample_pattern_datasource_with_cache = sources:
> csv:
> args:
> urlpath: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/s... regex: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/source/tests
> type: file
>
>
> def test_read_pattern_with_cache(sample_pattern_datasource_with_cache):
> da = sample_pattern_datasource_with_cache.to_dask()
> assert set(da.num.cat.categories) == {2, 3}
> assert set(da.dup.cat.categories) == {1, 2}
> > check_read_pattern_output(sample_pattern_datasource_with_cache)
>
> intake/source/tests/test_csv.py:163:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> source = sources:
> csv:
> args:
> urlpath: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/s... regex: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build/intake/source/tests
> type: file
>
>
> def check_read_pattern_output(source):
> da = source.to_dask()
> assert da.num.cat.known is True
> assert da.dup.cat.known is True
>
> # check that first partition has correct num and dup; which file
> # it represents is not guaranteed
> df0 = da.get_partition(0).compute()
> if df0['name'][0].endswith('1'):
> assert all(df0.num == 2)
> > assert all(df0.dup == 1)
> E assert False
> E + where False = all(0 2\n1 2\n2 2\n3 2\nName: dup, dtype: category\nCategories (2, int64): [1, 2] == 1)
> E + where 0 2\n1 2\n2 2\n3 2\nName: dup, dtype: category\nCategories (2, int64): [1, 2] = name score rank num dup\n0 Alice1 100.5 1 2 2\n1 Bob1 50.3 2 2 2\n2 Charlie1 25.0 3 2 2\n3 Eve1 25.0 3 2 2.dup
>
> intake/source/tests/test_csv.py:120: AssertionError
> ----------------------------- Captured stderr call -----------------------------
>
> 0/|/sample2_2.csv: |
>
> 0/|/sample3_2.csv: |[A
>
>
> 0/|/sample2_1.csv: |[A[A
>
>
>
> [A
>
>
> [A[A
> __________________ test_read_pattern_with_path_as_pattern_str __________________
>
> sample_list_datasource_with_path_as_pattern_str = sources:
> csv:
> args:
> path_as_pattern: sample{num:d}_{dup:d}.csv
> urlpath:
> - /<<BUILDDIR>>...e/build/intake/source/tests/sample2_2.csv
> description: ''
> driver: intake.source.csv.CSVSource
> metadata: {}
>
>
> def test_read_pattern_with_path_as_pattern_str(sample_list_datasource_with_path_as_pattern_str):
> da = sample_list_datasource_with_path_as_pattern_str.to_dask()
> assert set(da.num.cat.categories) == {2}
> assert set(da.dup.cat.categories) == {1, 2}
> > check_read_pattern_output(sample_list_datasource_with_path_as_pattern_str)
>
> intake/source/tests/test_csv.py:170:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> source = sources:
> csv:
> args:
> path_as_pattern: sample{num:d}_{dup:d}.csv
> urlpath:
> - /<<BUILDDIR>>...e/build/intake/source/tests/sample2_2.csv
> description: ''
> driver: intake.source.csv.CSVSource
> metadata: {}
>
>
> def check_read_pattern_output(source):
> da = source.to_dask()
> assert da.num.cat.known is True
> assert da.dup.cat.known is True
>
> # check that first partition has correct num and dup; which file
> # it represents is not guaranteed
> df0 = da.get_partition(0).compute()
> if df0['name'][0].endswith('1'):
> assert all(df0.num == 2)
> > assert all(df0.dup == 1)
> E assert False
> E + where False = all(0 2\n1 2\n2 2\n3 2\nName: dup, dtype: category\nCategories (2, int64): [1, 2] == 1)
> E + where 0 2\n1 2\n2 2\n3 2\nName: dup, dtype: category\nCategories (2, int64): [1, 2] = name score rank num dup\n0 Alice1 100.5 1 2 2\n1 Bob1 50.3 2 2 2\n2 Charlie1 25.0 3 2 2\n3 Eve1 25.0 3 2 2.dup
>
> intake/source/tests/test_csv.py:120: AssertionError
> =========================== short test summary info ============================
> FAILED intake/source/tests/test_csv.py::test_read_pattern - assert False
> FAILED intake/source/tests/test_csv.py::test_read_pattern_with_cache - assert...
> FAILED intake/source/tests/test_csv.py::test_read_pattern_with_path_as_pattern_str
> ================== 3 failed, 355 passed, 22 skipped in 50.61s ==================
> E: pybuild pybuild:353: test: plugin custom failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_intake/build; PATH=/<<PKGBUILDDIR>>/debian/python3-intake/usr/bin:/<<PKGBUILDDIR>>/debian/python3-intake/usr/lib:/<<PKGBUILDDIR>>/debian/python3-intake/build/intake:$PATH python3.9 -m pytest
> 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/02/13/intake_0.6.0-4_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 me
so that we can identify if something relevant changed in the meantime.
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
More information about the Debian-med-packaging
mailing list