Cover ODLResultVisitor 33/26133/2
authorCédric Ollivier <cedric.ollivier@orange.com>
Sat, 17 Dec 2016 09:59:52 +0000 (10:59 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 17 Dec 2016 10:07:33 +0000 (11:07 +0100)
It adds unit tests to cover ODLResultVisitor and then increases the
coverage to 78%. It also fixes a nit in details pushed to DB.

Change-Id: Ie4c31df67b5197c4273ee835242153e74b50601d
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
functest/opnfv_tests/sdn/odl/odl.py
functest/tests/unit/odl/test_odl.py

index 706b0da..0905e55 100755 (executable)
@@ -35,7 +35,7 @@ class ODLResultVisitor(ResultVisitor):
         output['name'] = test.name
         output['parent'] = test.parent.name
         output['status'] = test.status
-        output['startime'] = test.starttime
+        output['starttime'] = test.starttime
         output['endtime'] = test.endtime
         output['critical'] = test.critical
         output['text'] = test.message
index 0deef6b..d8c7f84 100644 (file)
@@ -13,7 +13,9 @@ import mock
 import os
 import unittest
 
+from keystoneauth1.exceptions import auth_plugins
 from robot.errors import RobotError
+from robot.result import testcase
 
 from functest.core import testcase_base
 from functest.opnfv_tests.sdn.odl import odl
@@ -43,6 +45,33 @@ class ODLTesting(unittest.TestCase):
         os.environ["OS_TENANT_NAME"] = self._os_tenantname
         self.test = odl.ODLTests()
 
+    def test_empty_visitor(self):
+        visitor = odl.ODLResultVisitor()
+        self.assertFalse(visitor.get_data())
+
+    def test_visitor(self):
+        visitor = odl.ODLResultVisitor()
+        data = {'name': 'foo',
+                'parent': 'bar',
+                'status': 'PASS',
+                'starttime': "20161216 16:00:00.000",
+                'endtime': "20161216 16:00:01.000",
+                'elapsedtime': 1000,
+                'text': 'Hello, World!',
+                'critical': True}
+        test = testcase.TestCase(name=data['name'],
+                                 status=data['status'],
+                                 message=data['text'],
+                                 starttime=data['starttime'],
+                                 endtime=data['endtime'])
+        test.parent = mock.Mock()
+        config = {'name': data['parent'],
+                  'criticality.test_is_critical.return_value': data[
+                      'critical']}
+        test.parent.configure_mock(**config)
+        visitor.visit_test(test)
+        self.assertEqual(visitor.get_data(), [data])
+
     @mock.patch('fileinput.input', side_effect=Exception())
     def test_set_robotframework_vars_failed(self, *args):
         self.assertFalse(self.test.set_robotframework_vars())
@@ -247,6 +276,12 @@ class ODLTesting(unittest.TestCase):
                 ospassword=self._os_password, ostenantname=self._os_tenantname,
                 osusername=self._os_username)
 
+    def test_run_exception(self):
+        with mock.patch('functest.utils.openstack_utils.get_endpoint',
+                        side_effect=auth_plugins.MissingAuthPlugin()):
+            self.assertEqual(self.test.run(),
+                             testcase_base.TestcaseBase.EX_RUN_ERROR)
+
     def test_run_missing_os_username(self):
         self._test_run_missing_env_var("OS_USERNAME")