[Distutils] Where should I put tests when packaging python modules?
Antoine Pitrou
solipsis at pitrou.net
Tue Oct 6 13:00:18 CEST 2015
On Tue, 6 Oct 2015 11:30:00 +0300
Ionel Cristian Mărieș <contact at ionelmc.ro> wrote:
> On Tue, Oct 6, 2015 at 10:51 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>
> > They should be inside the module. That way, you can check an installed
> > module is ok by running e.g. "python -m mypackage.tests". Any other
> > choice makes testing installed modules more cumbersome.
> >
>
> Does that really make sense? I haven't heard of any user actually running
> tests
> that way. To be honest I haven't ever ran Python's own tests suite as part
> of a user installation.
There are several situations besides the "downstream packagers" use case
mentioned somewhere else:
* One of your users report a weird issue, you can ask them to run the
test suite on their installation to check that nominal behaviour of
the package is ok on their machine. If you don't ship the test suite,
you have to ask them to do extra manual steps in order to do this
verification, which can be cumbersome and delay proper response to
the issue.
* Your package requires non-Python data files for proper functioning,
and you want to check the installation procedure puts them in the
right place. The natural way to do that is to run the test suite on
the installed package.
Really, "ship the test suite" should be the norm and not shipping it
should be the exception (if e.g. testing needs large data files).
Regards
Antoine.
More information about the Distutils-SIG
mailing list