datalad / datalad

Keep code, data, containers under control with git and git-annex

Home Page:http://datalad.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pytest collection fails on recentish neurodebians: Argument(s) {'collection_path'} are declared in the hookimpl but can not be found in the hookspec

yarikoptic opened this issue · comments

neurodebian@smaug ~/deb/builds/datalad/0.19.6-1 % grep "Argument(s) {'collection_path'} are declared in the hookimpl but can not be found in the hookspec" *build
datalad_0.19.6-1~nd110+1_amd64.build:E   Argument(s) {'collection_path'} are declared in the hookimpl but can not be found in the hookspec
datalad_0.19.6-1~nd22.04+1_amd64.build:E   Argument(s) {'collection_path'} are declared in the hookimpl but can not be found in the hookspec

so not the most recent, in detail:

I: pybuild base:240: cd /build/datalad-0.19.6/.pybuild/cpython3_3.10_datalad/build; python3.10 -m pytest -s -v -k 'not test_test and not test_subprocess_return_code_capture and not test_gracefull_death' -c /build/datalad-0.19.6/tox.ini
============================= test session starts ==============================
platform linux -- Python 3.10.4, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3.10
cachedir: .pytest_cache
rootdir: /build/datalad-0.19.6/.pybuild/cpython3_3.10_datalad/build, configfile: ../../../tox.ini
collecting ... collected 0 items / 1 error

==================================== ERRORS ====================================
________________________ ERROR collecting test session _________________________
/usr/lib/python3/dist-packages/pluggy/manager.py:125: in register
    self._verify_hook(hook, hookimpl)
/usr/lib/python3/dist-packages/pluggy/manager.py:250: in _verify_hook
    raise PluginValidationError(
E   pluggy.manager.PluginValidationError: Plugin '/build/datalad-0.19.6/.pybuild/cpython3_3.10_datalad/build/datalad/conftest.py' for hook 'pytest_ignore_collect'
E   hookimpl definition: pytest_ignore_collect(collection_path: pathlib.Path) -> bool
E   Argument(s) {'collection_path'} are declared in the hookimpl but can not be found in the hookspec
=========================== short test summary info ============================
ERROR  - pluggy.manager.PluginValidationError: Plugin '/build/datalad-0.19.6/...
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 0.16s ===============================

@jwodder -- rings any bells?

@yarikoptic The output states that you're using pytest 6.2.5, which is very old. Upgrade it.

That's the one those systems have ... I will look into backporting but might be tricky... and we did not define the lowest version of pytest for datalad. Is this message suggestive that we need at least 7.x version?

@yarikoptic Yes, pytest 7.0 seems to be the minimum required now, based on the fact that the old calling convention was deprecated in that version.