Package: autodep8
Version: 0.28+nmu1
Severity: wishlist
X-Debbugs-Cc: debian-python@lists.debian.org
Affects: pybuild-plugin-autopkgtest

autodep8 has two modes for testing Python modules:

1. "Testsuite: autopkgtest-pkg-python" generates a simple smoke-test:
   install python3-foo and its mandatory dependencies, run 'import foo'
   and assert that it succeeds.

2. "Testsuite: autopkgtest-pkg-pybuild" generates a more elaborate
   test: install python3-foo and also the build-dependencies of the source
   package, and attempt to run the upstream test suite against the
   installed python3-foo.

   This must install the full build-dependencies, because in general the
   upstream test suite will require additional packages beyond the
   mandatory dependencies of python3-foo: either test infrastructure like
   pytest, or dependencies of optional features. For example python3-tap
   `Recommends: python3-more-itertools, python3-yaml`, but does not depend
   on them, because they are only needed for some (rare) features; but
   running the upstream test suite *requires* those extra modules.

The Python team is discussing making (2.) mandatory, or at least strongly
recommended. However, for packages that are already using (1.), this loses
some test coverage: we would no longer be verifying that the package's
mandatory dependencies are enough to import it!

Ideally we would have a way to do (1.) *and* (2.). Perhaps
Testsuite: autopkgtest-pkg-pybuild could generate both tests, either always
or with some mechanism to opt-in?

A workaround is to handle one of (1.) or (2.) automatically, and hard-code
the test that would be generated by the other one into debian/tests/control
(but that seems undesirable, because the whole point of autodep8 is to be
able to change these generated test definitions centrally without having to
re-upload every package).

    smcv

Reply via email to