Merge "support fuel&daisy for doctor in functest"
[functest.git] / functest / tests / unit / odl / test_odl.py
index b93ad31..6304d37 100644 (file)
@@ -13,13 +13,12 @@ import logging
 import os
 import unittest
 
-from keystoneauth1.exceptions import auth_plugins
 import mock
 from robot.errors import RobotError
 import six
 from six.moves import urllib
+from xtesting.core import testcase
 
-from functest.core import testcase
 from functest.opnfv_tests.sdn.odl import odl
 
 __author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
@@ -33,7 +32,7 @@ class ODLTesting(unittest.TestCase):
     logging.disable(logging.CRITICAL)
 
     _keystone_ip = "127.0.0.1"
-    _neutron_url = "http://127.0.0.2:9696"
+    _neutron_url = u"https://127.0.0.1:9696"
     _sdn_controller_ip = "127.0.0.3"
     _os_auth_url = "http://{}:5000/v3".format(_keystone_ip)
     _os_projectname = "admin"
@@ -172,6 +171,7 @@ class ODLMainTesting(ODLTesting):
                 'RESTCONFPORT:{}'.format(self._odl_restconfport)]
             args[1].assert_called_once_with(
                 odl.ODLTests.basic_suite_dir, odl.ODLTests.neutron_suite_dir,
+                include=[],
                 log='NONE',
                 output=os.path.join(self.test.res_dir, 'output.xml'),
                 report='NONE', stdout=mock.ANY, variable=variable,
@@ -269,66 +269,78 @@ class ODLRunTesting(ODLTesting):
     """The class testing ODLTests.run()."""
     # pylint: disable=missing-docstring
 
-    def _test_no_env_var(self, var):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            del os.environ[var]
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
-
+    @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
+                return_value=ODLTesting._neutron_url)
+    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+                'get_credentials')
+    def _test_no_env_var(self, var, *args):
+        del os.environ[var]
+        self.assertEqual(self.test.run(), testcase.TestCase.EX_RUN_ERROR)
+        args[0].assert_called_once_with()
+        args[1].assert_called_once_with(mock.ANY, 'network')
+
+    @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
+                return_value=ODLTesting._neutron_url)
+    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+                'get_credentials')
+    def _test_missing_value(self, *args):
+        self.assertEqual(self.test.run(), testcase.TestCase.EX_RUN_ERROR)
+        args[0].assert_called_once_with()
+        args[1].assert_called_once_with(mock.ANY, 'network')
+
+    @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
+                return_value=ODLTesting._neutron_url)
+    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+                'get_credentials')
     def _test_run(self, status=testcase.TestCase.EX_OK,
-                  exception=None, **kwargs):
+                  exception=None, *args, **kwargs):
         odlip = kwargs['odlip'] if 'odlip' in kwargs else '127.0.0.3'
         odlwebport = kwargs['odlwebport'] if 'odlwebport' in kwargs else '8080'
         odlrestconfport = (kwargs['odlrestconfport']
                            if 'odlrestconfport' in kwargs else '8181')
-
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            if exception:
-                self.test.run_suites = mock.Mock(side_effect=exception)
-            else:
-                self.test.run_suites = mock.Mock(return_value=status)
-            self.assertEqual(self.test.run(), status)
-            self.test.run_suites.assert_called_once_with(
-                odl.ODLTests.default_suites,
-                neutronurl=self._neutron_url,
-                odlip=odlip, odlpassword=self._odl_password,
-                odlrestconfport=odlrestconfport,
-                odlusername=self._odl_username, odlwebport=odlwebport,
-                osauthurl=self._os_auth_url,
-                ospassword=self._os_password,
-                osprojectname=self._os_projectname,
-                osusername=self._os_username,
-                osprojectdomainname=self._os_projectdomainname,
-                osuserdomainname=self._os_userdomainname)
-
+        if exception:
+            self.test.run_suites = mock.Mock(side_effect=exception)
+        else:
+            self.test.run_suites = mock.Mock(return_value=status)
+        self.assertEqual(self.test.run(), status)
+        self.test.run_suites.assert_called_once_with(
+            odl.ODLTests.default_suites, neutronurl=self._neutron_url,
+            odlip=odlip, odlpassword=self._odl_password,
+            odlrestconfport=odlrestconfport, odlusername=self._odl_username,
+            odlwebport=odlwebport, osauthurl=self._os_auth_url,
+            ospassword=self._os_password, osprojectname=self._os_projectname,
+            osusername=self._os_username,
+            osprojectdomainname=self._os_projectdomainname,
+            osuserdomainname=self._os_userdomainname)
+        args[0].assert_called_once_with()
+        args[1].assert_called_once_with(mock.ANY, 'network')
+
+    @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
+                return_value=ODLTesting._neutron_url)
+    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+                'get_credentials')
     def _test_multiple_suites(self, suites,
-                              status=testcase.TestCase.EX_OK, **kwargs):
+                              status=testcase.TestCase.EX_OK, *args, **kwargs):
         odlip = kwargs['odlip'] if 'odlip' in kwargs else '127.0.0.3'
         odlwebport = kwargs['odlwebport'] if 'odlwebport' in kwargs else '8080'
         odlrestconfport = (kwargs['odlrestconfport']
                            if 'odlrestconfport' in kwargs else '8181')
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            self.test.run_suites = mock.Mock(return_value=status)
-            self.assertEqual(self.test.run(suites=suites), status)
-            self.test.run_suites.assert_called_once_with(
-                suites,
-                neutronurl=self._neutron_url,
-                odlip=odlip, odlpassword=self._odl_password,
-                odlrestconfport=odlrestconfport,
-                odlusername=self._odl_username, odlwebport=odlwebport,
-                osauthurl=self._os_auth_url,
-                ospassword=self._os_password,
-                osprojectname=self._os_projectname,
-                osusername=self._os_username,
-                osprojectdomainname=self._os_projectdomainname,
-                osuserdomainname=self._os_userdomainname)
+        self.test.run_suites = mock.Mock(return_value=status)
+        self.assertEqual(self.test.run(suites=suites), status)
+        self.test.run_suites.assert_called_once_with(
+            suites, neutronurl=self._neutron_url, odlip=odlip,
+            odlpassword=self._odl_password, odlrestconfport=odlrestconfport,
+            odlusername=self._odl_username, odlwebport=odlwebport,
+            osauthurl=self._os_auth_url, ospassword=self._os_password,
+            osprojectname=self._os_projectname, osusername=self._os_username,
+            osprojectdomainname=self._os_projectdomainname,
+            osuserdomainname=self._os_userdomainname)
+        args[0].assert_called_once_with()
+        args[1].assert_called_once_with(mock.ANY, 'network')
 
     def test_exc(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        side_effect=auth_plugins.MissingAuthPlugin()):
+        with mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
+                        side_effect=Exception()):
             self.assertEqual(self.test.run(),
                              testcase.TestCase.EX_RUN_ERROR)
 
@@ -346,27 +358,24 @@ class ODLRunTesting(ODLTesting):
 
     def test_run_suites_false(self):
         os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
-        self._test_run(testcase.TestCase.EX_RUN_ERROR,
+        self._test_run(testcase.TestCase.EX_RUN_ERROR, None,
                        odlip=self._sdn_controller_ip,
                        odlwebport=self._odl_webport)
 
     def test_run_suites_exc(self):
         with self.assertRaises(Exception):
             os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
-            self._test_run(status=testcase.TestCase.EX_RUN_ERROR,
-                           exception=Exception(),
+            self._test_run(testcase.TestCase.EX_RUN_ERROR,
+                           Exception(),
                            odlip=self._sdn_controller_ip,
                            odlwebport=self._odl_webport)
 
     def test_no_sdn_controller_ip(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
+        self._test_missing_value()
 
     def test_without_installer_type(self):
         os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
-        self._test_run(testcase.TestCase.EX_OK,
+        self._test_run(testcase.TestCase.EX_OK, None,
                        odlip=self._sdn_controller_ip,
                        odlwebport=self._odl_webport)
 
@@ -378,71 +387,55 @@ class ODLRunTesting(ODLTesting):
             odlip=self._sdn_controller_ip,
             odlwebport=self._odl_webport)
 
+    def test_fuel_no_controller_ip(self):
+        os.environ["INSTALLER_TYPE"] = "fuel"
+        self._test_missing_value()
+
     def test_fuel(self):
+        os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
         os.environ["INSTALLER_TYPE"] = "fuel"
-        self._test_run(testcase.TestCase.EX_OK,
-                       odlip=urllib.parse.urlparse(self._neutron_url).hostname,
-                       odlwebport='8181',
+        self._test_run(testcase.TestCase.EX_OK, None,
+                       odlip=self._sdn_controller_ip,
+                       odlwebport='8282',
                        odlrestconfport='8282')
 
     def test_apex_no_controller_ip(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            os.environ["INSTALLER_TYPE"] = "apex"
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
+        os.environ["INSTALLER_TYPE"] = "apex"
+        self._test_missing_value()
 
     def test_apex(self):
         os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
         os.environ["INSTALLER_TYPE"] = "apex"
-        self._test_run(testcase.TestCase.EX_OK,
+        self._test_run(testcase.TestCase.EX_OK, None,
                        odlip=self._sdn_controller_ip, odlwebport='8081',
                        odlrestconfport='8081')
 
     def test_netvirt_no_controller_ip(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            os.environ["INSTALLER_TYPE"] = "netvirt"
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
+        os.environ["INSTALLER_TYPE"] = "netvirt"
+        self._test_missing_value()
 
     def test_netvirt(self):
         os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
         os.environ["INSTALLER_TYPE"] = "netvirt"
-        self._test_run(testcase.TestCase.EX_OK,
+        self._test_run(testcase.TestCase.EX_OK, None,
                        odlip=self._sdn_controller_ip, odlwebport='8081',
                        odlrestconfport='8081')
 
-    def test_joid_no_controller_ip(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            os.environ["INSTALLER_TYPE"] = "joid"
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
-
-    def test_joid(self):
-        os.environ["SDN_CONTROLLER"] = self._sdn_controller_ip
-        os.environ["INSTALLER_TYPE"] = "joid"
-        self._test_run(testcase.TestCase.EX_OK,
-                       odlip=self._sdn_controller_ip, odlwebport='8080')
-
     def test_compass(self):
+        os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
         os.environ["INSTALLER_TYPE"] = "compass"
-        self._test_run(testcase.TestCase.EX_OK,
-                       odlip=urllib.parse.urlparse(self._neutron_url).hostname,
+        self._test_run(testcase.TestCase.EX_OK, None,
+                       odlip=self._sdn_controller_ip,
                        odlrestconfport='8080')
 
     def test_daisy_no_controller_ip(self):
-        with mock.patch('functest.utils.openstack_utils.get_endpoint',
-                        return_value=ODLTesting._neutron_url):
-            os.environ["INSTALLER_TYPE"] = "daisy"
-            self.assertEqual(self.test.run(),
-                             testcase.TestCase.EX_RUN_ERROR)
+        os.environ["INSTALLER_TYPE"] = "daisy"
+        self._test_missing_value()
 
     def test_daisy(self):
         os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
         os.environ["INSTALLER_TYPE"] = "daisy"
-        self._test_run(testcase.TestCase.EX_OK,
+        self._test_run(testcase.TestCase.EX_OK, None,
                        odlip=self._sdn_controller_ip, odlwebport='8181',
                        odlrestconfport='8087')