← Back to team overview

cloud-init team mailing list archive

integration test and tox


Hey all,

Josh asked yesterday about dropping 'tox' support for integration test.
I consider it a requirement to have integration tests easily run.
In the past, I've qualified that requirement by saying that I do not mind
if the requirement is to have an ubuntu host.  I feel this is very
defensible in the lxd case where you can launch an instance on any cloud
and run ci with lxd there.  It applies less or not at all
for a future platform 'Azure' or 'Ec2' where the framework is just doing
api calls to a remote service.

So the requirement is "contained and easily constructed environment",
ideally not requiring root. Tox fulfills most of that.
It doesn't do so perfectly due to pylxd's dependency on C for build.
Tox also allows us to easily list the versions of things that work.

There does seem to be 2 pieces of the pie for integration test
 a.) python environment
 b.) system dependencies (this would include build-deps for pylxd
     and mount-image-callback or qemu-system-x86_64 for kvm-nocloud).

This is the simplest thing to keep tox working as it did is, just listing
simplestreams as a dependency in tox.ini via 'bzr+lp:simplestreams'

That I'd be willing to pursue would be to set up a git
push-mirror on launchpad for simplestreams.  Then we could use
git+https://git.launchpad.net/simplestreams and the user running ci would
not need to have bzr installed.

Other option that seems interesting to me due to my disdain for the pylxd
and its build issues.

That would require further work, as we'd have to make 'run' not fail due
to failed imports of an un-used platform.