diff options
Diffstat (limited to 'snaps/openstack/tests/os_source_file_test.py')
-rw-r--r-- | snaps/openstack/tests/os_source_file_test.py | 40 |
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. |