summaryrefslogtreecommitdiffstats
path: root/functest/tests/unit/openstack/rally/test_rally.py
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2019-02-14 22:21:53 +0100
committerCédric Ollivier <cedric.ollivier@orange.com>2019-02-15 18:27:53 +0100
commita5b19c79cfe340a607a909e8a7ca38eef15f8d43 (patch)
treeabb593a679dc08820e7dce2450e750d5f7439595 /functest/tests/unit/openstack/rally/test_rally.py
parent49f5e46a12adf34c1dcfe5d127ff08a3706fc371 (diff)
Generate xunit reports (rally and tempest)
It adds xunit reports for rally-based and tempest-based testcases. It completes the reports provided by snaps (thanks to Xtesting). All rally related operations are moved to rally. It allows removing the rally dependency to tempest which was false. Change-Id: Ia7d2476f58f4f68b7c88442e50cad844037a36e9 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 3393f2016483555c27d612c69ec11274cc8aa72a)
Diffstat (limited to 'functest/tests/unit/openstack/rally/test_rally.py')
-rw-r--r--functest/tests/unit/openstack/rally/test_rally.py65
1 files changed, 51 insertions, 14 deletions
diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py
index 334deb843..7d21e0deb 100644
--- a/functest/tests/unit/openstack/rally/test_rally.py
+++ b/functest/tests/unit/openstack/rally/test_rally.py
@@ -69,6 +69,21 @@ class OSRallyTesting(unittest.TestCase):
return True
return False
+ @mock.patch('functest.opnfv_tests.openstack.rally.rally.'
+ 'RallyBase.get_verifier_deployment_id', return_value='foo')
+ @mock.patch('subprocess.check_output')
+ def test_create_rally_deployment(self, mock_exec, mock_get_id):
+ # pylint: disable=unused-argument
+ self.assertEqual(rally.RallyBase.create_rally_deployment(), 'foo')
+ 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'))],
+ env=None),
+ mock.call(['rally', 'deployment', 'check'])]
+ mock_exec.assert_has_calls(calls)
+
@mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.os.makedirs')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
@@ -314,7 +329,7 @@ class OSRallyTesting(unittest.TestCase):
self.rally_base.clean()
self.assertEqual(mock_delete_flavor.call_count, 1)
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+ @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'create_rally_deployment')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'prepare_run')
@@ -323,19 +338,19 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'_generate_report')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'generate_html_report')
+ 'export_task')
def test_run_default(self, *args):
self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_OK)
for func in args:
func.assert_called()
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+ @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'create_rally_deployment', side_effect=Exception)
def test_run_exception_create_rally_dep(self, mock_create_rally_dep):
self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_RUN_ERROR)
mock_create_rally_dep.assert_called()
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
+ @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'create_rally_deployment', return_value=mock.Mock())
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
'prepare_run', side_effect=Exception)
@@ -372,22 +387,44 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('subprocess.check_output',
side_effect=subprocess.CalledProcessError('', ''))
- def test_generate_html_report_ko(self, *args):
+ def test_export_task_ko(self, *args):
+ file_name = "{}/{}.html".format(
+ self.rally_base.results_dir, self.rally_base.case_name)
with self.assertRaises(subprocess.CalledProcessError):
- self.rally_base.generate_html_report()
- cmd = ["rally", "task", "report", "--deployment",
+ self.rally_base.export_task(file_name)
+ cmd = ["rally", "task", "export", "--type", "html", "--deployment",
str(getattr(config.CONF, 'rally_deployment_name')),
- "--out", "{}/{}.html".format(
- self.rally_base.results_dir, self.rally_base.case_name)]
+ "--to", file_name]
args[0].assert_called_with(cmd, stderr=subprocess.STDOUT)
@mock.patch('subprocess.check_output', return_value=None)
- def test_generate_html_report(self, *args):
- self.assertEqual(self.rally_base.generate_html_report(), None)
- cmd = ["rally", "task", "report", "--deployment",
+ def test_export_task(self, *args):
+ file_name = "{}/{}.html".format(
+ self.rally_base.results_dir, self.rally_base.case_name)
+ self.assertEqual(self.rally_base.export_task(file_name), None)
+ cmd = ["rally", "task", "export", "--type", "html", "--deployment",
str(getattr(config.CONF, 'rally_deployment_name')),
- "--out", "{}/{}.html".format(
- self.rally_base.results_dir, self.rally_base.case_name)]
+ "--to", file_name]
+ args[0].assert_called_with(cmd, stderr=subprocess.STDOUT)
+
+ @mock.patch('subprocess.check_output',
+ side_effect=subprocess.CalledProcessError('', ''))
+ def test_verify_report_ko(self, *args):
+ file_name = "{}/{}.html".format(
+ self.rally_base.results_dir, self.rally_base.case_name)
+ with self.assertRaises(subprocess.CalledProcessError):
+ self.rally_base.verify_report(file_name, "1")
+ cmd = ["rally", "verify", "report", "--type", "html", "--uuid", "1",
+ "--to", file_name]
+ args[0].assert_called_with(cmd, stderr=subprocess.STDOUT)
+
+ @mock.patch('subprocess.check_output', return_value=None)
+ def test_verify_report(self, *args):
+ file_name = "{}/{}.html".format(
+ self.rally_base.results_dir, self.rally_base.case_name)
+ self.assertEqual(self.rally_base.verify_report(file_name, "1"), None)
+ cmd = ["rally", "verify", "report", "--type", "html", "--uuid", "1",
+ "--to", file_name]
args[0].assert_called_with(cmd, stderr=subprocess.STDOUT)