Update unit tests for yardstick/benchmark/core/report.py 75/60975/7
authorPatrice Buriez <patrice.buriez@intel.com>
Fri, 9 Nov 2018 09:25:19 +0000 (10:25 +0100)
committerPatrice Buriez <patrice.buriez@intel.com>
Wed, 21 Nov 2018 13:49:20 +0000 (14:49 +0100)
* Remove redundant imports
* Rename some constants
* Add additional unit tests
* Reword KeyError message

JIRA: YARDSTICK-1367
Topic: report/html_table (1 of 11)

Change-Id: I3d89c1ed9acaeb7421a0734e33075ebae252c035
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
yardstick/benchmark/core/report.py
yardstick/tests/unit/benchmark/core/test_report.py

index 1996024..d0bf4ea 100644 (file)
 
 """ Handler for yardstick command 'report' """
 
-from __future__ import print_function
-
-from __future__ import absolute_import
-
 import ast
 import re
 import uuid
@@ -64,7 +60,7 @@ class Report(object):
         if query_exec:
             return query_exec
         else:
-            raise KeyError("Task ID or Test case not found..")
+            raise KeyError("Test case not found.")
 
     def _get_tasks(self):
         task_cmd = "select * from \"%s\" where task_id= '%s'"
@@ -73,7 +69,7 @@ class Report(object):
         if query_exec:
             return query_exec
         else:
-            raise KeyError("Task ID or Test case not found..")
+            raise KeyError("Task ID or Test case not found.")
 
     @cliargs("task_id", type=str, help=" task id", nargs=1)
     @cliargs("yaml_name", type=str, help=" Yaml file Name", nargs=1)
index 524302f..2827f8e 100644 (file)
@@ -7,30 +7,24 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-# Unittest for yardstick.benchmark.core.report
-
-from __future__ import print_function
-
-from __future__ import absolute_import
-
+import mock
 import unittest
 import uuid
 
-try:
-    from unittest import mock
-except ImportError:
-    import mock
-
+from api.utils import influx
 from yardstick.benchmark.core import report
 from yardstick.cmd.commands import change_osloobj_to_paras
 
-FAKE_YAML_NAME = 'fake_name'
-FAKE_TASK_ID = str(uuid.uuid4())
-FAKE_DB_FIELDKEYS = [{'fieldKey': 'fake_key'}]
-FAKE_TIME = '0000-00-00T00:00:00.000000Z'
-FAKE_DB_TASK = [{'fake_key': 0.000, 'time': FAKE_TIME}]
-FAKE_TIMESTAMP = ['fake_time']
-DUMMY_TASK_ID = 'aaaaaa-aaaaaaaa-aaaaaaaaaa-aaaaaa'
+GOOD_YAML_NAME = 'fake_name'
+GOOD_TASK_ID = str(uuid.uuid4())
+GOOD_DB_FIELDKEYS = [{'fieldKey': 'fake_key'}]
+GOOD_DB_TASK = [{
+        'fake_key': 0.000,
+        'time': '0000-00-00T00:00:00.000000Z',
+        }]
+GOOD_TIMESTAMP = ['00:00:00.000000']
+BAD_YAML_NAME = 'F@KE_NAME'
+BAD_TASK_ID = 'aaaaaa-aaaaaaaa-aaaaaaaaaa-aaaaaa'
 
 
 class ReportTestCase(unittest.TestCase):
@@ -38,37 +32,69 @@ class ReportTestCase(unittest.TestCase):
     def setUp(self):
         super(ReportTestCase, self).setUp()
         self.param = change_osloobj_to_paras({})
-        self.param.yaml_name = [FAKE_YAML_NAME]
-        self.param.task_id = [FAKE_TASK_ID]
+        self.param.yaml_name = [GOOD_YAML_NAME]
+        self.param.task_id = [GOOD_TASK_ID]
         self.rep = report.Report()
 
+    def test___init__(self):
+        self.assertEqual([], self.rep.Timestamp)
+        self.assertEqual("", self.rep.yaml_name)
+        self.assertEqual("", self.rep.task_id)
+
+    def test__validate(self):
+        self.rep._validate(GOOD_YAML_NAME, GOOD_TASK_ID)
+        self.assertEqual(GOOD_YAML_NAME, self.rep.yaml_name)
+        self.assertEqual(GOOD_TASK_ID, str(self.rep.task_id))
+
+    def test__validate_invalid_yaml_name(self):
+        with self.assertRaisesRegexp(ValueError, "yaml*"):
+            self.rep._validate(BAD_YAML_NAME, GOOD_TASK_ID)
+
+    def test__validate_invalid_task_id(self):
+        with self.assertRaisesRegexp(ValueError, "task*"):
+            self.rep._validate(GOOD_YAML_NAME, BAD_TASK_ID)
+
+    @mock.patch.object(influx, 'query')
+    def test__get_fieldkeys(self, mock_query):
+        mock_query.return_value = GOOD_DB_FIELDKEYS
+        self.rep.yaml_name = GOOD_YAML_NAME
+        self.rep.task_id = GOOD_TASK_ID
+        self.assertEqual(GOOD_DB_FIELDKEYS, self.rep._get_fieldkeys())
+
+    @mock.patch.object(influx, 'query')
+    def test__get_fieldkeys_nodbclient(self, mock_query):
+        mock_query.side_effect = RuntimeError
+        self.assertRaises(RuntimeError, self.rep._get_fieldkeys)
+
+    @mock.patch.object(influx, 'query')
+    def test__get_fieldkeys_testcase_not_found(self, mock_query):
+        mock_query.return_value = []
+        self.rep.yaml_name = GOOD_YAML_NAME
+        self.rep.task_id = GOOD_TASK_ID
+        self.assertRaisesRegexp(KeyError, "Test case", self.rep._get_fieldkeys)
+
+    @mock.patch.object(influx, 'query')
+    def test__get_tasks(self, mock_query):
+        mock_query.return_value = GOOD_DB_TASK
+        self.rep.yaml_name = GOOD_YAML_NAME
+        self.rep.task_id = GOOD_TASK_ID
+        self.assertEqual(GOOD_DB_TASK, self.rep._get_tasks())
+
+    @mock.patch.object(influx, 'query')
+    def test__get_tasks_task_not_found(self, mock_query):
+        mock_query.return_value = []
+        self.rep.yaml_name = GOOD_YAML_NAME
+        self.rep.task_id = GOOD_TASK_ID
+        self.assertRaisesRegexp(KeyError, "Task ID", self.rep._get_tasks)
+
     @mock.patch.object(report.Report, '_get_tasks')
     @mock.patch.object(report.Report, '_get_fieldkeys')
     @mock.patch.object(report.Report, '_validate')
-    def test_generate_success(self, mock_valid, mock_keys, mock_tasks):
-        mock_tasks.return_value = FAKE_DB_TASK
-        mock_keys.return_value = FAKE_DB_FIELDKEYS
+    def test_generate(self, mock_valid, mock_keys, mock_tasks):
+        mock_tasks.return_value = GOOD_DB_TASK
+        mock_keys.return_value = GOOD_DB_FIELDKEYS
         self.rep.generate(self.param)
-        mock_valid.assert_called_once_with(FAKE_YAML_NAME, FAKE_TASK_ID)
+        mock_valid.assert_called_once_with(GOOD_YAML_NAME, GOOD_TASK_ID)
         mock_tasks.assert_called_once_with()
         mock_keys.assert_called_once_with()
-
-    # pylint: disable=deprecated-method
-    def test_invalid_yaml_name(self):
-        self.assertRaisesRegexp(ValueError, "yaml*", self.rep._validate,
-                                'F@KE_NAME', FAKE_TASK_ID)
-
-    # pylint: disable=deprecated-method
-    def test_invalid_task_id(self):
-        self.assertRaisesRegexp(ValueError, "task*", self.rep._validate,
-                                FAKE_YAML_NAME, DUMMY_TASK_ID)
-
-    @mock.patch('api.utils.influx.query')
-    def test_task_not_found(self, mock_query):
-        mock_query.return_value = []
-        self.rep.yaml_name = FAKE_YAML_NAME
-        self.rep.task_id = FAKE_TASK_ID
-        # pylint: disable=deprecated-method
-        self.assertRaisesRegexp(KeyError, "Task ID", self.rep._get_fieldkeys)
-        self.assertRaisesRegexp(KeyError, "Task ID", self.rep._get_tasks)
-        # pylint: enable=deprecated-method
+        self.assertEqual(GOOD_TIMESTAMP, self.rep.Timestamp)