summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2018-03-15 12:39:32 -0400
committerScott Moser <smoser@brickies.net>2018-03-15 12:39:32 -0400
commit2f5d4cebb243cf2f30c665f034668ba4b14178f9 (patch)
treead3d68b872b4dbdc759a005e5ded034b3d4de02c
parentbef2f2c945fdee4a1141c3177b3e48b1537027e4 (diff)
downloadvyos-cloud-init-2f5d4cebb243cf2f30c665f034668ba4b14178f9.tar.gz
vyos-cloud-init-2f5d4cebb243cf2f30c665f034668ba4b14178f9.zip
tests: fix run_tree and bddeb
This was broken probably when we inserted the ssh keys into Platform.   tox -e citest tree_run and   tox -e citest bddeb would fail with KeyError in Platform.init due to lack of a data_dir. Also here are a few fixes found from attempting to make it work.
-rw-r--r--tests/cloud_tests/bddeb.py2
-rw-r--r--tests/cloud_tests/platforms/platforms.py14
-rw-r--r--tests/cloud_tests/util.py6
3 files changed, 18 insertions, 4 deletions
diff --git a/tests/cloud_tests/bddeb.py b/tests/cloud_tests/bddeb.py
index a6d5069f..b9cfcfa6 100644
--- a/tests/cloud_tests/bddeb.py
+++ b/tests/cloud_tests/bddeb.py
@@ -16,7 +16,7 @@ pre_reqs = ['devscripts', 'equivs', 'git', 'tar']
def _out(cmd_res):
"""Get clean output from cmd result."""
- return cmd_res[0].strip()
+ return cmd_res[0].decode("utf-8").strip()
def build_deb(args, instance):
diff --git a/tests/cloud_tests/platforms/platforms.py b/tests/cloud_tests/platforms/platforms.py
index 1542b3be..abbfebba 100644
--- a/tests/cloud_tests/platforms/platforms.py
+++ b/tests/cloud_tests/platforms/platforms.py
@@ -2,12 +2,15 @@
"""Base platform class."""
import os
+import shutil
from simplestreams import filters, mirrors
from simplestreams import util as s_util
from cloudinit import util as c_util
+from tests.cloud_tests import util
+
class Platform(object):
"""Base class for platforms."""
@@ -17,7 +20,14 @@ class Platform(object):
def __init__(self, config):
"""Set up platform."""
self.config = config
- self._generate_ssh_keys(config['data_dir'])
+ self.tmpdir = util.mkdtemp()
+ if 'data_dir' in config:
+ self.data_dir = config['data_dir']
+ else:
+ self.data_dir = os.path.join(self.tmpdir, "data_dir")
+ os.mkdir(self.data_dir)
+
+ self._generate_ssh_keys(self.data_dir)
def get_image(self, img_conf):
"""Get image using specified image configuration.
@@ -29,7 +39,7 @@ class Platform(object):
def destroy(self):
"""Clean up platform data."""
- pass
+ shutil.rmtree(self.tmpdir)
def _generate_ssh_keys(self, data_dir):
"""Generate SSH keys to be used with image."""
diff --git a/tests/cloud_tests/util.py b/tests/cloud_tests/util.py
index 6ff285e7..3dd4996d 100644
--- a/tests/cloud_tests/util.py
+++ b/tests/cloud_tests/util.py
@@ -460,6 +460,10 @@ class PlatformError(IOError):
IOError.__init__(self, message)
+def mkdtemp(prefix='cloud_test_data'):
+ return tempfile.mkdtemp(prefix=prefix)
+
+
class TempDir(object):
"""Configurable temporary directory like tempfile.TemporaryDirectory."""
@@ -480,7 +484,7 @@ class TempDir(object):
@return_value: tempdir path
"""
if not self.tmpdir:
- self.tmpdir = tempfile.mkdtemp(prefix=self.prefix)
+ self.tmpdir = mkdtemp(prefix=self.prefix)
LOG.debug('using tmpdir: %s', self.tmpdir)
return self.tmpdir