summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--functest/opnfv_tests/openstack/tempest/conf_utils.py64
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py11
-rw-r--r--functest/tests/unit/openstack/tempest/test_conf_utils.py54
-rw-r--r--functest/tests/unit/openstack/tempest/test_tempest.py10
4 files changed, 59 insertions, 80 deletions
diff --git a/functest/opnfv_tests/openstack/tempest/conf_utils.py b/functest/opnfv_tests/openstack/tempest/conf_utils.py
index 0ff68f292..e0a36e5a4 100644
--- a/functest/opnfv_tests/openstack/tempest/conf_utils.py
+++ b/functest/opnfv_tests/openstack/tempest/conf_utils.py
@@ -22,7 +22,6 @@ import yaml
from functest.utils import config
from functest.utils import env
-import functest.utils.functest_utils as ft_utils
IMAGE_ID_ALT = None
@@ -64,35 +63,40 @@ def create_rally_deployment():
LOGGER.info("Creating Rally environment...")
- cmd = "rally deployment destroy opnfv-rally"
- ft_utils.execute_command(cmd, error_msg=(
- "Deployment %s does not exist."
- % getattr(config.CONF, 'rally_deployment_name')), verbose=False)
+ try:
+ cmd = ['rally', 'deployment', 'destroy',
+ '--deployment',
+ str(getattr(config.CONF, 'rally_deployment_name'))]
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
+ except subprocess.CalledProcessError:
+ pass
- cmd = ("rally deployment create --fromenv --name={0}"
- .format(getattr(config.CONF, 'rally_deployment_name')))
- error_msg = "Problem while creating Rally deployment"
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
+ cmd = ['rally', 'deployment', 'create', '--fromenv',
+ '--name', str(getattr(config.CONF, 'rally_deployment_name'))]
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
- cmd = "rally deployment check"
- error_msg = "OpenStack not responding or faulty Rally deployment."
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
+ cmd = ['rally', 'deployment', 'check']
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
def create_verifier():
"""Create new verifier"""
LOGGER.info("Create verifier from existing repo...")
- cmd = ("rally verify delete-verifier --id '{0}' --force").format(
- getattr(config.CONF, 'tempest_verifier_name'))
- ft_utils.execute_command(cmd, error_msg=(
- "Verifier %s does not exist."
- % getattr(config.CONF, 'tempest_verifier_name')), verbose=False)
- cmd = ("rally verify create-verifier --source {0} "
- "--name {1} --type tempest --system-wide"
- .format(getattr(config.CONF, 'dir_repo_tempest'),
- getattr(config.CONF, 'tempest_verifier_name')))
- ft_utils.execute_command_raise(cmd,
- error_msg='Problem while creating verifier')
+ cmd = ['rally', 'verify', 'delete-verifier',
+ '--id', str(getattr(config.CONF, 'tempest_verifier_name')),
+ '--force']
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
+
+ cmd = ['rally', 'verify', 'create-verifier',
+ '--source', str(getattr(config.CONF, 'dir_repo_tempest')),
+ '--name', str(getattr(config.CONF, 'tempest_verifier_name')),
+ '--type', 'tempest', '--system-wide']
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
def get_verifier_id():
@@ -253,17 +257,13 @@ def configure_verifier(deployment_dir):
"""
Execute rally verify configure-verifier, which generates tempest.conf
"""
- tempest_conf_file = os.path.join(deployment_dir, "tempest.conf")
- if os.path.isfile(tempest_conf_file):
- LOGGER.debug("Verifier is already configured.")
- LOGGER.debug("Reconfiguring the current verifier...")
- cmd = "rally verify configure-verifier --reconfigure"
- else:
- LOGGER.info("Configuring the verifier...")
- cmd = "rally verify configure-verifier"
- ft_utils.execute_command(cmd)
+ cmd = ['rally', 'verify', 'configure-verifier', '--reconfigure',
+ '--id', str(getattr(config.CONF, 'tempest_verifier_name'))]
+ output = subprocess.check_output(cmd)
+ LOGGER.info("%s\n%s", " ".join(cmd), output)
LOGGER.debug("Looking for tempest.conf file...")
+ tempest_conf_file = os.path.join(deployment_dir, "tempest.conf")
if not os.path.isfile(tempest_conf_file):
LOGGER.error("Tempest configuration file %s NOT found.",
tempest_conf_file)
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
index c11262e02..cab09a641 100644
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ b/functest/opnfv_tests/openstack/tempest/tempest.py
@@ -34,7 +34,6 @@ from functest.opnfv_tests.openstack.snaps import snaps_utils
from functest.opnfv_tests.openstack.tempest import conf_utils
from functest.utils import config
from functest.utils import env
-from functest.utils import functest_utils
LOGGER = logging.getLogger(__name__)
@@ -115,12 +114,10 @@ class TempestCommon(testcase.TestCase):
testr_mode = r"'^tempest\.'"
else:
testr_mode = self.mode
- cmd = ("cd {0};"
- "testr list-tests {1} > {2};"
- "cd -;".format(self.verifier_repo_dir,
- testr_mode,
- self.list))
- functest_utils.execute_command(cmd)
+ cmd = "(cd {0}; testr list-tests {1} >{2} 2>/dev/null)".format(
+ self.verifier_repo_dir, testr_mode, self.list)
+ output = subprocess.check_output(cmd, shell=True)
+ LOGGER.info("%s\n%s", cmd, output)
def apply_tempest_blacklist(self):
"""Exclude blacklisted test cases."""
diff --git a/functest/tests/unit/openstack/tempest/test_conf_utils.py b/functest/tests/unit/openstack/tempest/test_conf_utils.py
index ee22f7fc3..161d9c076 100644
--- a/functest/tests/unit/openstack/tempest/test_conf_utils.py
+++ b/functest/tests/unit/openstack/tempest/test_conf_utils.py
@@ -13,7 +13,8 @@ import unittest
import mock
-from functest.opnfv_tests.openstack.tempest import tempest, conf_utils
+from functest.opnfv_tests.openstack.tempest import conf_utils
+from functest.opnfv_tests.openstack.tempest import tempest
from functest.utils import config
from snaps.openstack.os_credentials import OSCreds
@@ -81,31 +82,16 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
msg = 'Failed to create flavor'
self.assertTrue(msg in context.exception, msg=str(context.exception))
- @staticmethod
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils'
- '.LOGGER.info')
- @mock.patch('functest.utils.functest_utils.execute_command_raise')
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_create_rally_deployment(mock_exec, mock_exec_raise,
- mock_logger_info):
-
- conf_utils.create_rally_deployment()
-
- cmd = "rally deployment destroy opnfv-rally"
- error_msg = "Deployment %s does not exist." % \
- getattr(config.CONF, 'rally_deployment_name')
- mock_logger_info.assert_any_call("Creating Rally environment...")
- mock_exec.assert_any_call(cmd, error_msg=error_msg, verbose=False)
-
- cmd = "rally deployment create --fromenv --name="
- cmd += getattr(config.CONF, 'rally_deployment_name')
- error_msg = "Problem while creating Rally deployment"
- mock_exec_raise.assert_any_call(cmd, error_msg=error_msg)
-
- cmd = "rally deployment check"
- error_msg = ("OpenStack not responding or "
- "faulty Rally deployment.")
- mock_exec_raise.assert_any_call(cmd, error_msg=error_msg)
+ @mock.patch('subprocess.check_output')
+ def test_create_rally_deployment(self, mock_exec):
+ self.assertEqual(conf_utils.create_rally_deployment(), None)
+ calls = [
+ mock.call(['rally', 'deployment', 'destroy', '--deployment',
+ str(getattr(config.CONF, 'rally_deployment_name'))]),
+ mock.call(['rally', 'deployment', 'create', '--fromenv', '--name',
+ str(getattr(config.CONF, 'rally_deployment_name'))]),
+ mock.call(['rally', 'deployment', 'check'])]
+ mock_exec.assert_has_calls(calls)
@mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils'
'.LOGGER.debug')
@@ -116,8 +102,7 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
mock_popen.configure_mock(**attrs)
setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name')
- with mock.patch('functest.utils.functest_utils.execute_command_raise',
- side_effect=Exception), \
+ with mock.patch('subprocess.Popen', side_effect=Exception), \
self.assertRaises(Exception):
conf_utils.create_verifier()
mock_logger_debug.assert_any_call("Tempest test_verifier_name"
@@ -272,11 +257,10 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
with mock.patch('functest.opnfv_tests.openstack.tempest.'
'conf_utils.os.path.isfile',
return_value=False), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ft_utils.execute_command') as mexe, \
+ mock.patch('subprocess.check_output') as mexe, \
self.assertRaises(Exception) as context:
conf_utils.configure_verifier('test_dep_dir')
- mexe.assert_any_call("rally verify configure-verifier")
+ mexe.assert_called_once_with("rally verify configure-verifier")
msg = ("Tempest configuration file 'test_dep_dir/tempest.conf'"
" NOT found.")
self.assertTrue(msg in context.exception)
@@ -285,12 +269,12 @@ class OSTempestConfUtilsTesting(unittest.TestCase):
with mock.patch('functest.opnfv_tests.openstack.tempest.'
'conf_utils.os.path.isfile',
return_value=True), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ft_utils.execute_command') as mexe:
+ mock.patch('subprocess.check_output') as mexe:
self.assertEqual(conf_utils.configure_verifier('test_dep_dir'),
'test_dep_dir/tempest.conf')
- mexe.assert_any_call("rally verify configure-verifier "
- "--reconfigure")
+ mexe.assert_called_once_with(
+ ['rally', 'verify', 'configure-verifier', '--reconfigure',
+ '--id', str(getattr(config.CONF, 'tempest_verifier_name'))])
if __name__ == "__main__":
diff --git a/functest/tests/unit/openstack/tempest/test_tempest.py b/functest/tests/unit/openstack/tempest/test_tempest.py
index 3a4851314..e2c4c975b 100644
--- a/functest/tests/unit/openstack/tempest/test_tempest.py
+++ b/functest/tests/unit/openstack/tempest/test_tempest.py
@@ -72,7 +72,7 @@ class OSTempestTesting(unittest.TestCase):
self.tempestcommon.generate_test_list()
self.assertTrue(mock_copyfile.called)
- @mock.patch('functest.utils.functest_utils.execute_command')
+ @mock.patch('subprocess.check_output')
def _test_gen_tl_mode_default(self, mode, mock_exec=None):
self.tempestcommon.mode = mode
if self.tempestcommon.mode == 'smoke':
@@ -82,12 +82,10 @@ class OSTempestTesting(unittest.TestCase):
else:
testr_mode = self.tempestcommon.mode
verifier_repo_dir = 'test_verifier_repo_dir'
- cmd = ("cd {0};"
- "testr list-tests {1} > {2};"
- "cd -;".format(verifier_repo_dir, testr_mode,
- self.tempestcommon.list))
+ cmd = "(cd {0}; testr list-tests {1} >{2} 2>/dev/null)".format(
+ verifier_repo_dir, testr_mode, self.tempestcommon.list)
self.tempestcommon.generate_test_list()
- mock_exec.assert_called_once_with(cmd)
+ mock_exec.assert_called_once_with(cmd, shell=True)
def test_gen_tl_smoke_mode(self):
self._test_gen_tl_mode_default('smoke')