pybuild and testing pytest plugins

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

pybuild and testing pytest plugins

Scott Talbert
When packaging a pytest plugin and wanting to run the plugin's unit tests
during the build process, the plugin usually has to be installed before
running the tests, otherwise pytest cannot find the plugin.  This seems to
require workarounds such as this [1].

Is there any way to avoid this with pybuild or is such a workaround really
necessary?

Thanks,
Scott

[1] https://salsa.debian.org/python-team/modules/pytest-xdist/blob/debian/master/debian/rules#L12


Reply | Threaded
Open this post in threaded view
|

Re: pybuild and testing pytest plugins

Alexandros Afentoulis-4
On 1/13/19 9:23 PM, Scott Talbert wrote:

> When packaging a pytest plugin and wanting to run the plugin's unit
> tests during the build process, the plugin usually has to be installed
> before running the tests, otherwise pytest cannot find the plugin.  This
> seems to require workarounds such as this [1].
>
> Is there any way to avoid this with pybuild or is such a workaround
> really necessary?
>
> Thanks,
> Scott
>
> [1]
> https://salsa.debian.org/python-team/modules/pytest-xdist/blob/debian/master/debian/rules#L12 
>
>
>

Hi!

Conceptually I think it's more relevant to override dh_auto_test. To
make sure pytest will register the plugin one may tweak the $PYTHONPATH.
That's the approach I followed in pytest-flask, see [1].

Not sure if this is a workaround too though :)

Cheers,
Alex

[1]
https://salsa.debian.org/python-team/modules/pytest-flask/blob/debian/master/debian/rules

Reply | Threaded
Open this post in threaded view
|

Re: pybuild and testing pytest plugins

Piotr Ozarowski-3
> Conceptually I think it's more relevant to override dh_auto_test. To make
> sure pytest will register the plugin one may tweak the $PYTHONPATH. That's
> the approach I followed in pytest-flask, see [1].

> [1] https://salsa.debian.org/python-team/modules/pytest-flask/blob/debian/master/debian/rules

while tests are run in build target (not my choice, I'd check installed files)
I strongly advise to *not* use source files (i.e. "PYTHONPATH=$(CURDIR)")
in dh_auto_test, especially if you build an extension. pybuild changes
directory for a reason.

If you need some files from source directory during tests, please list
them in debian/pybuild.testfiles file and pybuild will copy them to
build directory (and remove after tests). See pybuild manpage for more info.
--
GPG: 1D2F A898 58DA AF62 1786 2DF7 AEF6 F1A2 A745 7645

Reply | Threaded
Open this post in threaded view
|

Re: pybuild and testing pytest plugins

Alexandros Afentoulis-4
On 1/14/19 1:36 PM, Piotr Ożarowski wrote:

>> Conceptually I think it's more relevant to override dh_auto_test. To make
>> sure pytest will register the plugin one may tweak the $PYTHONPATH. That's
>> the approach I followed in pytest-flask, see [1].
>
>> [1] https://salsa.debian.org/python-team/modules/pytest-flask/blob/debian/master/debian/rules
>
> while tests are run in build target (not my choice, I'd check installed files)
> I strongly advise to *not* use source files (i.e. "PYTHONPATH=$(CURDIR)")
> in dh_auto_test, especially if you build an extension. pybuild changes
> directory for a reason.
>
> If you need some files from source directory during tests, please list
> them in debian/pybuild.testfiles file and pybuild will copy them to
> build directory (and remove after tests). See pybuild manpage for more info.
>

Aha, will try to do so for pytest-flask.
Thanks for the input. :)