Config test_accounts_file for refstack_defcore
[functest.git] / functest / tests / unit / openstack / tempest / test_conf_utils.py
index 8ca5cc5..e2937a1 100644 (file)
@@ -16,21 +16,10 @@ from functest.utils.constants import CONST
 
 class OSTempestConfUtilsTesting(unittest.TestCase):
 
-    logging.disable(logging.CRITICAL)
-
     def test_create_tempest_resources_missing_network_dic(self):
         with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                        'os_utils.get_keystone_client',
-                        return_value=mock.Mock()), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_tenant',
-                       return_value='test_tenant_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_user',
-                       return_value='test_user_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_shared_network_full',
-                       return_value=None), \
+                        'os_utils.create_shared_network_full',
+                        return_value=None), \
                 self.assertRaises(Exception) as context:
             conf_utils.create_tempest_resources()
             msg = 'Failed to create private network'
@@ -38,45 +27,27 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
 
     def test_create_tempest_resources_missing_image(self):
         with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                        'os_utils.get_keystone_client',
+                        'os_utils.create_shared_network_full',
                         return_value=mock.Mock()), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_tenant',
-                       return_value='test_tenant_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_user',
-                       return_value='test_user_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_shared_network_full',
-                       return_value=mock.Mock()), \
             mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
                        'os_utils.get_or_create_image',
                        return_value=(mock.Mock(), None)), \
                 self.assertRaises(Exception) as context:
 
-            CONST.tempest_use_custom_images = True
+            CONST.__setattr__('tempest_use_custom_images', True)
             conf_utils.create_tempest_resources()
             msg = 'Failed to create image'
             self.assertTrue(msg in context)
 
-            CONST.tempest_use_custom_images = False
+            CONST.__setattr__('tempest_use_custom_images', False)
             conf_utils.create_tempest_resources(use_custom_images=True)
             msg = 'Failed to create image'
             self.assertTrue(msg in context)
 
     def test_create_tempest_resources_missing_flavor(self):
         with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                        'os_utils.get_keystone_client',
+                        'os_utils.create_shared_network_full',
                         return_value=mock.Mock()), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_tenant',
-                       return_value='test_tenant_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_user',
-                       return_value='test_user_id'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
-                       'os_utils.create_shared_network_full',
-                       return_value=mock.Mock()), \
             mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
                        'os_utils.get_or_create_image',
                        return_value=(mock.Mock(), 'image_id')), \
@@ -84,20 +55,72 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
                        'os_utils.get_or_create_flavor',
                        return_value=(mock.Mock(), None)), \
                 self.assertRaises(Exception) as context:
-            CONST.tempest_use_custom_images = True
-            CONST.tempest_use_custom_flavors = True
+            CONST.__setattr__('tempest_use_custom_images', True)
+            CONST.__setattr__('tempest_use_custom_flavors', True)
             conf_utils.create_tempest_resources()
             msg = 'Failed to create flavor'
             self.assertTrue(msg in context)
 
-            CONST.tempest_use_custom_images = True
-            CONST.tempest_use_custom_flavors = False
+            CONST.__setattr__('tempest_use_custom_images', True)
+            CONST.__setattr__('tempest_use_custom_flavors', False)
             conf_utils.create_tempest_resources(use_custom_flavors=False)
             msg = 'Failed to create flavor'
             self.assertTrue(msg in context)
 
+    @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                'logger.error')
+    def create_tenant_user_and_tenant_ok(self, mock_logger_error):
+        with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                        'os_utils.get_keystone_client',
+                        return_value=mock.Mock()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                       'os_utils.create_tenant',
+                       return_value='test_tenant_id'):
+            conf_utils.create_tenant_user()
+            mock_logger_error.assert_not_called()
+
+    @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                'logger.error')
+    def create_tenant_user_and_user_ok(self, mock_logger_error):
+        with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                        'os_utils.get_keystone_client',
+                        return_value=mock.Mock()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                       'os_utils.create_user',
+                       return_value='test_user_id'):
+            conf_utils.create_tenant_user()
+            mock_logger_error.assert_not_called()
+
+    @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                'logger.error')
+    def create_tenant_user_and_tenant_failed(self, mock_logger_error):
+        with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                        'os_utils.get_keystone_client',
+                        return_value=mock.Mock()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                       'os_utils.create_tenant',
+                       return_value=None):
+            conf_utils.create_tenant_user()
+            msg = ("Failed to create %s tenant"
+                   % CONST.__getattribute__('tempest_identity_tenant_name'))
+            mock_logger_error.assert_any_call(msg)
+
+    @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                'logger.error')
+    def create_tenant_user_and_user_failed(self, mock_logger_error):
+        with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                        'os_utils.get_keystone_client',
+                        return_value=mock.Mock()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                       'os_utils.create_user',
+                       return_value=None):
+            conf_utils.create_tenant_user()
+            msg = ("Failed to create %s user"
+                   % CONST.__getattribute__('tempest_identity_user_name'))
+            mock_logger_error.assert_any_call(msg)
+
     def test_get_verifier_id_missing_verifier(self):
-        CONST.tempest_deployment_name = 'test_deploy_name'
+        CONST.__setattr__('tempest_deployment_name', 'test_deploy_name')
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.subprocess.Popen') as mock_popen, \
                 self.assertRaises(Exception):
@@ -108,7 +131,7 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             conf_utils.get_verifier_id(),
 
     def test_get_verifier_id_default(self):
-        CONST.tempest_deployment_name = 'test_deploy_name'
+        CONST.__setattr__('tempest_deployment_name', 'test_deploy_name')
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.subprocess.Popen') as mock_popen:
             mock_stdout = mock.Mock()
@@ -120,7 +143,7 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
                              'test_deploy_id')
 
     def test_get_verifier_deployment_id_missing_rally(self):
-        CONST.rally_deployment_name = 'test_rally_deploy_name'
+        CONST.__setattr__('tempest_deployment_name', 'test_deploy_name')
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.subprocess.Popen') as mock_popen, \
                 self.assertRaises(Exception):
@@ -131,7 +154,7 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             conf_utils.get_verifier_deployment_id(),
 
     def test_get_verifier_deployment_id_default(self):
-        CONST.rally_deployment_name = 'test_rally_deploy_name'
+        CONST.__setattr__('tempest_deployment_name', 'test_deploy_name')
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.subprocess.Popen') as mock_popen:
             mock_stdout = mock.Mock()
@@ -197,18 +220,6 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             self.assertTrue(m2.called)
 
     def test_configure_tempest_default(self):
-        with mock.patch('functest.opnfv_tests.openstack.tempest.'
-                        'conf_utils.configure_verifier',
-                        return_value='test_conf_file'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.configure_tempest_update_params') as m1, \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.configure_tempest_multisite_params') as m2:
-            conf_utils.configure_tempest('test_dep_dir',
-                                         MODE='feature_multisite')
-            self.assertTrue(m1.called)
-            self.assertTrue(m2.called)
-
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.configure_verifier',
                         return_value='test_conf_file'), \
@@ -216,7 +227,6 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
                        'conf_utils.configure_tempest_update_params') as m1:
             conf_utils.configure_tempest('test_dep_dir')
             self.assertTrue(m1.called)
-            self.assertTrue(m2.called)
 
     def test_configure_tempest_defcore_default(self):
         img_flavor_dict = {'image_id': 'test_image_id',
@@ -238,10 +248,10 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
                        'conf_utils.ConfigParser.RawConfigParser.'
                        'write') as mwrite, \
             mock.patch('__builtin__.open', mock.mock_open()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.'
+                       'conf_utils.generate_test_accounts_file'), \
             mock.patch('functest.opnfv_tests.openstack.tempest.'
                        'conf_utils.shutil.copyfile'):
-            CONST.dir_functest_test = 'test_dir'
-            CONST.refstack_tempest_conf_path = 'test_path'
             conf_utils.configure_tempest_defcore('test_dep_dir',
                                                  img_flavor_dict)
             mset.assert_any_call('compute', 'image_ref', 'test_image_id')
@@ -253,6 +263,17 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             self.assertTrue(mread.called)
             self.assertTrue(mwrite.called)
 
+    def test_generate_test_accounts_file_default(self):
+        with mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                        'create_tenant_user',
+                        return_value='test_tenant_id') as mock_create, \
+            mock.patch("__builtin__.open", mock.mock_open()), \
+            mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+                       'yaml.dump') as mock_dump:
+            conf_utils.generate_test_accounts_file()
+            self.assertTrue(mock_create.called)
+            self.assertTrue(mock_dump.called)
+
     def _test_missing_param(self, params, image_id, flavor_id):
         with mock.patch('functest.opnfv_tests.openstack.tempest.'
                         'conf_utils.ConfigParser.RawConfigParser.'
@@ -265,9 +286,10 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
                        'write') as mwrite, \
             mock.patch('__builtin__.open', mock.mock_open()), \
             mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.backup_tempest_config'):
-            CONST.dir_functest_test = 'test_dir'
-            CONST.OS_ENDPOINT_TYPE = None
+                       'conf_utils.backup_tempest_config'), \
+            mock.patch('functest.utils.functest_utils.yaml.safe_load',
+                       return_value={'validation': {'ssh_timeout': 300}}):
+            CONST.__setattr__('OS_ENDPOINT_TYPE', None)
             conf_utils.\
                 configure_tempest_update_params('test_conf_file',
                                                 IMAGE_ID=image_id,
@@ -277,25 +299,25 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             self.assertTrue(mwrite.called)
 
     def test_configure_tempest_update_params_missing_image_id(self):
-            CONST.tempest_use_custom_images = True
+            CONST.__setattr__('tempest_use_custom_images', True)
             self._test_missing_param(('compute', 'image_ref',
                                       'test_image_id'), 'test_image_id',
                                      None)
 
     def test_configure_tempest_update_params_missing_image_id_alt(self):
-            CONST.tempest_use_custom_images = True
+            CONST.__setattr__('tempest_use_custom_images', True)
             conf_utils.IMAGE_ID_ALT = 'test_image_id_alt'
             self._test_missing_param(('compute', 'image_ref_alt',
                                       'test_image_id_alt'), None, None)
 
     def test_configure_tempest_update_params_missing_flavor_id(self):
-            CONST.tempest_use_custom_flavors = True
+            CONST.__setattr__('tempest_use_custom_flavors', True)
             self._test_missing_param(('compute', 'flavor_ref',
                                       'test_flavor_id'), None,
                                      'test_flavor_id')
 
     def test_configure_tempest_update_params_missing_flavor_id_alt(self):
-            CONST.tempest_use_custom_flavors = True
+            CONST.__setattr__('tempest_use_custom_flavors', True)
             conf_utils.FLAVOR_ID_ALT = 'test_flavor_id_alt'
             self._test_missing_param(('compute', 'flavor_ref_alt',
                                       'test_flavor_id_alt'), None,
@@ -325,50 +347,7 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
             mexe.assert_any_call("rally verify configure-verifier "
                                  "--reconfigure")
 
-    def test_configure_tempest_multisite_params_without_fuel(self):
-        conf_utils.CI_INSTALLER_TYPE = 'not_fuel'
-        with mock.patch('functest.opnfv_tests.openstack.tempest.'
-                        'conf_utils.os_utils.get_endpoint',
-                        return_value='kingbird_endpoint_url'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.ConfigParser.RawConfigParser.'
-                       'set') as mset, \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.ConfigParser.RawConfigParser.'
-                       'read') as mread, \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.ConfigParser.RawConfigParser.'
-                       'add_section') as msection, \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.ConfigParser.RawConfigParser.'
-                       'write') as mwrite, \
-            mock.patch('__builtin__.open', mock.mock_open()), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.backup_tempest_config'):
-
-            conf_utils.configure_tempest_multisite_params('test_conf_file')
-            msection.assert_any_call("kingbird")
-            mset.assert_any_call('service_available', 'kingbird', 'true')
-            mset.assert_any_call('kingbird', 'endpoint_type', 'publicURL')
-            mset.assert_any_call('kingbird', 'TIME_TO_SYNC', '120')
-            mset.assert_any_call('kingbird', 'endpoint_url',
-                                 'kingbird_endpoint_url')
-            self.assertTrue(mread.called)
-            self.assertTrue(mwrite.called)
-
-    def test_install_verifier_ext_default(self):
-        with mock.patch('functest.opnfv_tests.openstack.tempest.'
-                        'conf_utils.get_repo_tag',
-                        return_value='test_tag'), \
-            mock.patch('functest.opnfv_tests.openstack.tempest.'
-                       'conf_utils.ft_utils.'
-                       'execute_command_raise') as mexe:
-            conf_utils.install_verifier_ext('test_path')
-            cmd = ("rally verify add-verifier-ext --source test_path "
-                   "--version test_tag")
-            error_msg = ("Problem while adding verifier extension from"
-                         " test_path")
-            mexe.assert_called_once_with(cmd, error_msg=error_msg)
 
 if __name__ == "__main__":
+    logging.disable(logging.CRITICAL)
     unittest.main(verbosity=2)