summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/tests/os_source_file_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'snaps/openstack/tests/os_source_file_test.py')
-rw-r--r--snaps/openstack/tests/os_source_file_test.py40
1 files changed, 29 insertions, 11 deletions
diff --git a/snaps/openstack/tests/os_source_file_test.py b/snaps/openstack/tests/os_source_file_test.py
index 7e70ed0..8b0a7b4 100644
--- a/snaps/openstack/tests/os_source_file_test.py
+++ b/snaps/openstack/tests/os_source_file_test.py
@@ -50,21 +50,31 @@ class OSComponentTestCase(unittest.TestCase):
logging.basicConfig(level=log_level)
+ self.ext_net_name = None
+ self.flavor_metadata = None
+
if os_creds:
self.os_creds = os_creds
else:
- self.os_creds = openstack_tests.get_credentials(
- dev_os_env_file=dev_os_env_file)
+ if file_utils.file_exists(dev_os_env_file):
+ self.os_creds = openstack_tests.get_credentials(
+ dev_os_env_file=dev_os_env_file)
+ test_conf = file_utils.read_yaml(dev_os_env_file)
+ self.ext_net_name = test_conf.get('ext_net')
+ os_env_dict = file_utils.read_yaml(dev_os_env_file)
+ flavor_metadata = os_env_dict.get('flavor_metadata')
+ if flavor_metadata:
+ self.flavor_metadata = {'metadata': flavor_metadata}
+ else:
+ raise Exception('Unable to obtain OSCreds')
self.os_session = keystone_utils.keystone_session(self.os_creds)
- self.ext_net_name = ext_net_name
-
- if not self.ext_net_name and file_utils.file_exists(dev_os_env_file):
- test_conf = file_utils.read_yaml(dev_os_env_file)
- self.ext_net_name = test_conf.get('ext_net')
- self.flavor_metadata = flavor_metadata
self.image_metadata = image_metadata
+ if not self.ext_net_name:
+ self.ext_net_name = ext_net_name
+ if not self.flavor_metadata:
+ self.flavor_metadata = flavor_metadata
@staticmethod
def parameterize(testcase_klass, os_creds, ext_net_name,
@@ -77,8 +87,9 @@ class OSComponentTestCase(unittest.TestCase):
test_names = test_loader.getTestCaseNames(testcase_klass)
suite = unittest.TestSuite()
for name in test_names:
- suite.addTest(testcase_klass(name, os_creds, ext_net_name,
- flavor_metadata, image_metadata, log_level))
+ suite.addTest(testcase_klass(
+ name, os_creds, ext_net_name, flavor_metadata, image_metadata,
+ log_level))
return suite
def __clean__(self):
@@ -123,6 +134,7 @@ class OSIntegrationTestCase(OSComponentTestCase):
self.use_keystone = use_keystone
self.keystone = None
self.user_roles = None
+ self.proj_users = None
@staticmethod
def parameterize(testcase_klass, os_creds, ext_net_name,
@@ -170,7 +182,7 @@ class OSIntegrationTestCase(OSComponentTestCase):
# Set by implementing class for setting the user's roles
roles = dict()
- if self.user_roles:
+ if self.user_roles and isinstance(self.user_roles, list):
for user_role in self.user_roles:
roles[user_role] = project_name
@@ -187,6 +199,12 @@ class OSIntegrationTestCase(OSComponentTestCase):
# add user to project
self.project_creator.assoc_user(self.user_creator.get_user())
+ if self.proj_users and isinstance(self.proj_users, list):
+ for user_name in self.proj_users:
+ user = keystone_utils.get_user(self.keystone, user_name)
+ if user:
+ self.project_creator.assoc_user(user)
+
def __clean__(self):
"""
Cleans up test user and project.