[arch-dev-public] Unit tests for python packages

Levente Polyak anthraxx at archlinux.org
Wed Apr 18 10:49:45 UTC 2018


On April 18, 2018 11:53:01 AM GMT+02:00, Baptiste Jonglez <baptiste at bitsofnetworks.org> wrote:
>Hi,
>
>Does anyone have experience with unit tests for python packages?  It's
>really useful to spot missing runtime dependencies, but it's a pain to
>get
>to work.
>
>Here is what I saw:
>
>1) just running "python -m unittest discover" or "nosetests" or
>equivalent
>  in the check() function does not work, because the package is not yet
>   installed (so all imports will fail)
>
>2) setuptools is supposed to have a unittest integration such that
>   "python setup.py test" should work out of the box, but in my case it
>   never finds any tests to run
>
>3) I've seen some more... "creative" solutions :)
>https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/python-coverage#n28
>
>So far, the only working solution I found is playing with PYTHONPATH:
>
>    cd "$srcdir/$pkgname-$pkgver/tests"
>    export PYTHONPATH="$srcdir/$pkgname-$pkgver/src"
>    python -m unittest discover
>
>But it's a hack, and it probably won't work with things like 2to3.
>
>Any better ideas?
>Baptiste


If you use a build function there shouldn't be any problems like 2to3 while running tests, everything should be converted / build and generated for the use of tests.
For certain upstream test setups there won't be much you can do other then PYTHONPATH but as mentioned with a build function it should always work.
You can give python-pytest-runner a go, it does proper resolution while running "python setup.py test" but requires certain ways the whole test suites are wired.

Cheers
Levente 


More information about the arch-dev-public mailing list