summaryrefslogtreecommitdiff
path: root/tests/cloud_tests/snapshots/base.py
diff options
context:
space:
mode:
authorWesley Wiedenmeier <wesley.wiedenmeier@gmail.com>2017-06-08 18:23:31 -0400
committerScott Moser <smoser@brickies.net>2017-06-08 18:24:17 -0400
commit76d58265e34851b78e952a7f275340863c90a9f5 (patch)
tree91bf17879724b180e43bff07e428bb9089cbb395 /tests/cloud_tests/snapshots/base.py
parentad2680a689ab78847ccce7766d6591797d99e219 (diff)
downloadvyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.tar.gz
vyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.zip
Integration Testing: tox env, pyxld 2.2.3, and revamp framework
Massive update to clean up and greatly enhance the integration testing framework developed by Wesley Wiedenmeier. - Updated tox environment to run integration test 'citest' to utilize pylxd 2.2.3 - Add support for distro feature flags - add framework for feature flags to release config with feature groups and overrides allowed in any release conf override level - add support for feature flags in platform and config handling - during collect, skip testcases that require features not supported by the image with a warning message - Enable additional distros (i.e. centos, debian) - Add 'bddeb' command to build a deb from the current working tree cleanly in a container, so deps do not have to be installed on host - Adds a command line option '--preserve-data' that ensures that collected data will be left after tests run. This also allows the directory to store collected data in during the run command to be specified using '--data-dir'. - Updated Read the Docs testing page and doc strings for pep 257 compliance
Diffstat (limited to 'tests/cloud_tests/snapshots/base.py')
-rw-r--r--tests/cloud_tests/snapshots/base.py43
1 files changed, 22 insertions, 21 deletions
diff --git a/tests/cloud_tests/snapshots/base.py b/tests/cloud_tests/snapshots/base.py
index d715f037..94328982 100644
--- a/tests/cloud_tests/snapshots/base.py
+++ b/tests/cloud_tests/snapshots/base.py
@@ -1,44 +1,45 @@
# This file is part of cloud-init. See LICENSE file for license information.
+"""Base snapshot."""
+
class Snapshot(object):
- """
- Base class for snapshots
- """
+ """Base class for snapshots."""
+
platform_name = None
- def __init__(self, properties, config):
- """
- Set up snapshot
+ def __init__(self, platform, properties, config, features):
+ """Set up snapshot.
+
+ @param platform: platform object
+ @param properties: image properties
+ @param config: image config
+ @param features: supported feature flags
"""
+ self.platform = platform
self.properties = properties
self.config = config
+ self.features = features
def __str__(self):
- """
- a brief description of the snapshot
- """
+ """A brief description of the snapshot."""
return '-'.join((self.properties['os'], self.properties['release']))
def launch(self, user_data, meta_data=None, block=True, start=True,
use_desc=None):
- """
- launch instance
-
- user_data: user-data for the instance
- instance_id: instance-id for the instance
- block: wait until instance is created
- start: start instance and wait until fully started
- use_desc: description of snapshot instance use
+ """Launch instance.
- return_value: an Instance
+ @param user_data: user-data for the instance
+ @param instance_id: instance-id for the instance
+ @param block: wait until instance is created
+ @param start: start instance and wait until fully started
+ @param use_desc: description of snapshot instance use
+ @return_value: an Instance
"""
raise NotImplementedError
def destroy(self):
- """
- Clean up snapshot data
- """
+ """Clean up snapshot data."""
pass
# vi: ts=4 expandtab