From 68d798bb793052f589a7e48c508aca9031c7e271 Mon Sep 17 00:00:00 2001 From: Scott Moser Date: Fri, 23 Mar 2018 13:51:17 -0600 Subject: tests: remove jsonschema from xenial tox environment. Ubuntu 16.04 (xenial) does not have jsonschema installed by default. As it is listed in requirements, the tox environment will always have it installed. Add the helper tools/pipremove that removes pip packages. Then use that to remove jsonschema without noise of always running and ignoring a 'pip uninstall jsonschema'. --- tools/pipremove | 14 ++++++++++++++ tox.ini | 3 +++ 2 files changed, 17 insertions(+) create mode 100755 tools/pipremove diff --git a/tools/pipremove b/tools/pipremove new file mode 100755 index 00000000..f8f4ff11 --- /dev/null +++ b/tools/pipremove @@ -0,0 +1,14 @@ +#!/usr/bin/python3 +import subprocess +import sys + +for pkg in sys.argv[1:]: + try: + exec('import %s' % pkg) # pylint: disable=W0122 + except ImportError: + continue + sys.stderr.write("%s removing package %s\n" % (sys.argv[0], pkg)) + ret = subprocess.Popen(['pip', 'uninstall', '--yes', pkg]).wait() + if ret != 0: + sys.stderr.write("Failed to uninstall %s (%d)\n" % (pkg, ret)) + sys.exit(ret) diff --git a/tox.ini b/tox.ini index 1f990af4..818ade3d 100644 --- a/tox.ini +++ b/tox.ini @@ -60,6 +60,9 @@ deps = sphinx commands = {envpython} -m sphinx {posargs:doc/rtd doc/rtd_html} [testenv:xenial] +commands = + python ./tools/pipremove jsonschema + python -m nose {posargs:tests/unittests cloudinit} basepython = python3 deps = # requirements -- cgit v1.2.3