[openstack-dev] how to provide tests environments for python things that require C extensions

James E. Blair corvus at inaugust.com
Tue Sep 9 00:18:06 UTC 2014


Sean Dague <sean at dague.net> writes:

> The crux of the issue is that zookeeper python modules are C extensions.
> So you have to either install from packages (which we don't do in unit
> tests) or install from pip, which means forcing zookeeper dev packages
> locally. Realistically this is the same issue we end up with for mysql
> and pg, but given their wider usage we just forced that pain on developers.
...
> Which feels like we need some decoupling on our requirements vs. tox
> targets to get there. CC to Monty and Clark as our super awesome tox
> hackers to help figure out if there is a path forward here that makes sense.

>From a technical standpoint, all we need to do to make this work is to
add the zookeeper python client bindings to (test-)requirements.txt.
But as you point out, that makes it more difficult for developers who
want to run unit tests locally without having the requisite libraries
and header files installed.

We could add another requirements file with heavyweight optional
dependencies, and use that in gate testing, but also have a lightweight
tox environment that does not include them for ease of use in local
testing.

What would be really great is if we could use setuptools extras_require
for this:

https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies

However, I'm not sure what the situation is with support for that in pip
(and we might need pbr support too).

-Jim



More information about the OpenStack-dev mailing list