Merge "Fix warnings in all snaps-related modules"
authorCedric Ollivier <cedric.ollivier@orange.com>
Mon, 29 Jan 2018 13:46:50 +0000 (13:46 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 29 Jan 2018 13:46:50 +0000 (13:46 +0000)
14 files changed:
functest/opnfv_tests/openstack/snaps/api_check.py
functest/opnfv_tests/openstack/snaps/connection_check.py
functest/opnfv_tests/openstack/snaps/health_check.py
functest/opnfv_tests/openstack/snaps/smoke.py
functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py
functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
functest/opnfv_tests/openstack/snaps/snaps_utils.py
functest/opnfv_tests/openstack/vping/vping_base.py
functest/opnfv_tests/openstack/vping/vping_ssh.py
functest/opnfv_tests/openstack/vping/vping_userdata.py
functest/tests/unit/openstack/snaps/test_snaps.py
functest/tests/unit/openstack/vping/__init__.py [new file with mode: 0644]
functest/tests/unit/openstack/vping/test_vping.py
tox.ini

index e708b4d..e8b9c32 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -6,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import unittest
 
 from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
@@ -38,4 +42,4 @@ class ApiCheck(SnapsTestRunner):
             ext_net_name=self.ext_net_name,
             use_keystone=self.use_keystone,
             image_metadata=self.image_metadata)
-        return super(self.__class__, self).run()
+        return super(ApiCheck, self).run()
index 1fc4934..f8bf885 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -6,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import unittest
 
 from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
@@ -37,4 +41,4 @@ class ConnectionCheck(SnapsTestRunner):
             os_creds=self.os_creds,
             ext_net_name=self.ext_net_name,
             use_keystone=self.use_keystone)
-        return super(self.__class__, self).run()
+        return super(ConnectionCheck, self).run()
index 837c2ea..db882c3 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -6,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import unittest
 
 from functest.opnfv_tests.openstack.snaps.snaps_test_runner import (
@@ -42,4 +46,4 @@ class HealthCheck(SnapsTestRunner):
                 flavor_metadata=self.flavor_metadata,
                 image_metadata=self.image_metadata,
                 netconf_override=self.netconf_override))
-        return super(self.__class__, self).run()
+        return super(HealthCheck, self).run()
index ded149d..ef6e5dc 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -6,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import unittest
 
 from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
@@ -41,4 +45,4 @@ class SnapsSmoke(SnapsTestRunner):
             image_metadata=self.image_metadata,
             use_floating_ips=self.use_fip,
             netconf_override=self.netconf_override)
-        return super(self.__class__, self).run()
+        return super(SnapsSmoke, self).run()
index 3e7c0a3..c3d8c2d 100644 (file)
@@ -8,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import logging
 
 from snaps.openstack.tests.create_flavor_tests import (
@@ -119,6 +121,7 @@ def add_openstack_client_tests(suite, os_creds, ext_net_name,
 
 def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
                             image_metadata=None, log_level=logging.INFO):
+    # pylint: disable=too-many-arguments
     """
     Adds tests written to exercise all existing OpenStack APIs
     :param suite: the unittest.TestSuite object to which to add the tests
@@ -232,6 +235,7 @@ def add_openstack_integration_tests(suite, os_creds, ext_net_name,
                                     image_metadata=None, use_floating_ips=True,
                                     netconf_override=None,
                                     log_level=logging.INFO):
+    # pylint: disable=too-many-arguments
     """
     Adds tests written to exercise all long-running OpenStack integration tests
     meaning they will be creating VM instances and potentially performing some
index 6dc8288..94c8af8 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -6,6 +8,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 import logging
 
 from functest.core import unit
@@ -17,13 +21,14 @@ from snaps.openstack.tests import openstack_tests
 
 
 class SnapsTestRunner(unit.Suite):
+    # pylint: disable=too-many-instance-attributes
     """
     This test executes the SNAPS Python Tests
     """
+
     def __init__(self, **kwargs):
         super(SnapsTestRunner, self).__init__(**kwargs)
         self.logger = logging.getLogger(__name__)
-
         if 'os_creds' in kwargs:
             self.os_creds = kwargs['os_creds']
         else:
index 284e88b..1153b63 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2015 All rights reserved
 # This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -5,6 +7,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
+# pylint: disable=missing-docstring
+
 from functest.utils.constants import CONST
 
 from snaps.openstack.utils import neutron_utils, nova_utils
@@ -19,7 +23,7 @@ def get_ext_net_name(os_creds):
     """
     neutron = neutron_utils.neutron_client(os_creds)
     ext_nets = neutron_utils.get_external_networks(neutron)
-    if (hasattr(CONST, 'EXTERNAL_NETWORK')):
+    if hasattr(CONST, 'EXTERNAL_NETWORK'):
         extnet_config = CONST.__getattribute__('EXTERNAL_NETWORK')
         for ext_net in ext_nets:
             if ext_net.name == extnet_config:
index df9774e..b99fdf6 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # This program and the accompanying materials
@@ -37,19 +39,15 @@ class VPingBase(testcase.TestCase):
 
     def __init__(self, **kwargs):
         super(VPingBase, self).__init__(**kwargs)
-
         self.logger = logging.getLogger(__name__)
-
         if 'os_creds' in kwargs:
             self.os_creds = kwargs['os_creds']
         else:
-            creds_override = None
-            if hasattr(CONST, 'snaps_os_creds_override'):
-                creds_override = CONST.__getattribute__(
-                    'snaps_os_creds_override')
-
+            creds_override = getattr(
+                CONST, 'snaps_os_creds_override') if hasattr(
+                    CONST, 'snaps_os_creds_override') else None
             self.os_creds = openstack_tests.get_credentials(
-                os_env_file=CONST.__getattribute__('openstack_creds'),
+                os_env_file=getattr(CONST, 'openstack_creds'),
                 overrides=creds_override)
 
         self.creators = list()
@@ -62,27 +60,24 @@ class VPingBase(testcase.TestCase):
         # Shared metadata
         self.guid = '-' + str(uuid.uuid4())
 
-        self.router_name = CONST.__getattribute__(
-            'vping_router_name') + self.guid
-        self.vm1_name = CONST.__getattribute__('vping_vm_name_1') + self.guid
-        self.vm2_name = CONST.__getattribute__('vping_vm_name_2') + self.guid
-
-        self.vm_boot_timeout = CONST.__getattribute__('vping_vm_boot_timeout')
-        self.vm_delete_timeout = CONST.__getattribute__(
-            'vping_vm_delete_timeout')
-        self.vm_ssh_connect_timeout = CONST.__getattribute__(
-            'vping_vm_ssh_connect_timeout')
-        self.ping_timeout = CONST.__getattribute__('vping_ping_timeout')
+        self.router_name = getattr(CONST, 'vping_router_name') + self.guid
+        self.vm1_name = getattr(CONST, 'vping_vm_name_1') + self.guid
+        self.vm2_name = getattr(CONST, 'vping_vm_name_2') + self.guid
+
+        self.vm_boot_timeout = getattr(CONST, 'vping_vm_boot_timeout')
+        self.vm_delete_timeout = getattr(CONST, 'vping_vm_delete_timeout')
+        self.vm_ssh_connect_timeout = getattr(
+            CONST, 'vping_vm_ssh_connect_timeout')
+        self.ping_timeout = getattr(CONST, 'vping_ping_timeout')
         self.flavor_name = 'vping-flavor' + self.guid
 
         # Move this configuration option up for all tests to leverage
         if hasattr(CONST, 'snaps_images_cirros'):
-            self.cirros_image_config = CONST.__getattribute__(
-                'snaps_images_cirros')
+            self.cirros_image_config = getattr(CONST, 'snaps_images_cirros')
         else:
             self.cirros_image_config = None
 
-    def run(self):
+    def run(self, **kwargs):  # pylint: disable=too-many-locals
         """
         Begins the test execution which should originate from the subclass
         """
@@ -95,7 +90,7 @@ class VPingBase(testcase.TestCase):
                 '%Y-%m-%d %H:%M:%S'))
 
         image_base_name = '{}-{}'.format(
-            CONST.__getattribute__('vping_image_name'),
+            getattr(CONST, 'vping_image_name'),
             str(self.guid))
         os_image_settings = openstack_tests.cirros_image_settings(
             image_base_name, image_metadata=self.cirros_image_config)
@@ -105,26 +100,21 @@ class VPingBase(testcase.TestCase):
             self.os_creds, os_image_settings)
         self.creators.append(self.image_creator)
 
-        private_net_name = CONST.__getattribute__(
-            'vping_private_net_name') + self.guid
-        private_subnet_name = CONST.__getattribute__(
-            'vping_private_subnet_name') + self.guid
-        private_subnet_cidr = CONST.__getattribute__(
-            'vping_private_subnet_cidr')
+        private_net_name = getattr(CONST, 'vping_private_net_name') + self.guid
+        private_subnet_name = getattr(
+            CONST, 'vping_private_subnet_name') + self.guid
+        private_subnet_cidr = getattr(CONST, 'vping_private_subnet_cidr')
 
         vping_network_type = None
         vping_physical_network = None
         vping_segmentation_id = None
 
         if hasattr(CONST, 'vping_network_type'):
-            vping_network_type = CONST.__getattribute__(
-                'vping_network_type')
+            vping_network_type = getattr(CONST, 'vping_network_type')
         if hasattr(CONST, 'vping_physical_network'):
-            vping_physical_network = CONST.__getattribute__(
-                'vping_physical_network')
+            vping_physical_network = getattr(CONST, 'vping_physical_network')
         if hasattr(CONST, 'vping_segmentation_id'):
-            vping_segmentation_id = CONST.__getattribute__(
-                'vping_segmentation_id')
+            vping_segmentation_id = getattr(CONST, 'vping_segmentation_id')
 
         self.logger.info(
             "Creating network with name: '%s'", private_net_name)
@@ -154,7 +144,7 @@ class VPingBase(testcase.TestCase):
 
         self.logger.info(
             "Creating flavor with name: '%s'", self.flavor_name)
-        scenario = CONST.__getattribute__('DEPLOY_SCENARIO')
+        scenario = getattr(CONST, 'DEPLOY_SCENARIO')
         flavor_metadata = None
         flavor_ram = 512
         if 'ovs' in scenario or 'fdio' in scenario:
@@ -197,7 +187,7 @@ class VPingBase(testcase.TestCase):
         Cleanup all OpenStack objects. Should be called on completion
         :return:
         """
-        if CONST.__getattribute__('vping_cleanup_objects') == 'True':
+        if getattr(CONST, 'vping_cleanup_objects') == 'True':
             for creator in reversed(self.creators):
                 try:
                     creator.clean()
index 7df767e..57e177e 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-#
+
 # Copyright (c) 2015 All rights reserved
 # This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -7,12 +7,8 @@
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 
-
 """vPingSSH testcase."""
 
-# This 1st import is here simply for pep8 as the 'os' package import appears
-# to be required for mock and the unit tests will fail without it
-import os  # noqa # pylint: disable=unused-import
 import time
 
 from scp import SCPClient
@@ -53,7 +49,7 @@ class VPingSSH(vping_base.VPingBase):
         self.sg_desc = CONST.__getattribute__('vping_sg_desc')
 
     @energy.enable_recording
-    def run(self):
+    def run(self, **kwargs):
         """
         Excecute VPingSSH testcase.
 
index ceba091..76cdcf8 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-#
+
 # Copyright (c) 2015 All rights reserved
 # This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -29,7 +29,7 @@ class VPingUserdata(vping_base.VPingBase):
             kwargs["case_name"] = "vping_userdata"
         super(VPingUserdata, self).__init__(**kwargs)
 
-    def run(self):
+    def run(self, **kwargs):
         """
         Sets up the OpenStack VM instance objects then executes the ping and
         validates.
index 9a360cb..3d9e9df 100644 (file)
@@ -8,15 +8,15 @@
 
 # pylint: disable=missing-docstring
 
-import mock
-import os
+import logging
 import unittest
 
+import mock
 from snaps.openstack.os_credentials import OSCreds
 
 from functest.core.testcase import TestCase
-from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
-                                                  health_check, smoke)
+from functest.opnfv_tests.openstack.snaps import (
+    connection_check, api_check, health_check, smoke)
 
 
 class ConnectionCheckTesting(unittest.TestCase):
@@ -35,40 +35,52 @@ class ConnectionCheckTesting(unittest.TestCase):
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_client_tests')
-    def test_run_success(self, add_os_client_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = []
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.connection_check.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_success(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = []
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.connection_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
+            use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_client_tests')
-    def test_run_1_of_100_failures(self, add_os_client_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
-            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
-                              self.connection_check.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+        self.assertEquals(
+            TestCase.EX_TESTCASE_FAILED, self.connection_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
+            use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_client_tests')
-    def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests):
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko_criteria(self, *args):
         self.connection_check.criteria = 90
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.connection_check.is_successful())
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.connection_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.connection_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
+            use_keystone=True)
 
 
 class APICheckTesting(unittest.TestCase):
@@ -87,40 +99,52 @@ class APICheckTesting(unittest.TestCase):
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_api_tests')
-    def test_run_success(self, add_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = []
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.api_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.api_check.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_success(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = []
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.api_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.api_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', image_metadata=mock.ANY,
+            os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_api_tests')
-    def test_run_1_of_100_failures(self, add_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.api_check.run())
-            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
-                              self.api_check.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.api_check.run())
+        self.assertEquals(
+            TestCase.EX_TESTCASE_FAILED, self.api_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', image_metadata=mock.ANY,
+            os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_api_tests')
-    def test_run_1_of_100_failures_within_criteria(self, add_tests):
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko_criteria(self, *args):
         self.api_check.criteria = 90
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.api_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.api_check.is_successful())
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.api_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.api_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', image_metadata=mock.ANY,
+            os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
 
 
 class HealthCheckTesting(unittest.TestCase):
@@ -137,42 +161,57 @@ class HealthCheckTesting(unittest.TestCase):
         self.health_check = health_check.HealthCheck(
             os_creds=self.os_creds, ext_net_name='foo')
 
-    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
-                'add_openstack_client_tests')
-    def test_run_success(self, add_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = []
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.health_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.health_check.is_successful())
-
-    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
-                'add_openstack_client_tests')
-    def test_run_1_of_100_failures(self, add_tests):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.health_check.run())
-            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
-                              self.health_check.is_successful())
-
-    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
-                'add_openstack_client_tests')
-    def test_run_1_of_100_failures_within_criteria(self, add_tests):
+    @mock.patch('snaps.openstack.tests.os_source_file_test.'
+                'OSIntegrationTestCase.parameterize')
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_success(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = []
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.health_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.health_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            mock.ANY, ext_net_name='foo', flavor_metadata=None,
+            image_metadata=mock.ANY, netconf_override=None,
+            os_creds=self.os_creds, use_keystone=True)
+
+    @mock.patch('snaps.openstack.tests.os_source_file_test.'
+                'OSIntegrationTestCase.parameterize')
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.health_check.run())
+        self.assertEquals(
+            TestCase.EX_TESTCASE_FAILED, self.health_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            mock.ANY, ext_net_name='foo', flavor_metadata=None,
+            image_metadata=mock.ANY, netconf_override=None,
+            os_creds=self.os_creds, use_keystone=True)
+
+    @mock.patch('snaps.openstack.tests.os_source_file_test.'
+                'OSIntegrationTestCase.parameterize')
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko_criteria(self, *args):
         self.health_check.criteria = 90
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.health_check.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.health_check.is_successful())
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.health_check.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.health_check.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            mock.ANY, ext_net_name='foo', flavor_metadata=None,
+            image_metadata=mock.ANY, netconf_override=None,
+            os_creds=self.os_creds, use_keystone=True)
 
 
 class SmokeTesting(unittest.TestCase):
@@ -191,40 +230,56 @@ class SmokeTesting(unittest.TestCase):
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_integration_tests')
-    @mock.patch('os.path.join', return_value=os.getcwd())
-    def test_run_success(self, add_tests, cwd):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = []
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.smoke.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.smoke.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_success(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = []
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.smoke.run())
+        self.assertEquals(TestCase.EX_OK, self.smoke.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
+            netconf_override=None, os_creds=self.os_creds,
+            suite=mock.ANY, use_floating_ips=True, use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_integration_tests')
-    @mock.patch('os.path.join', return_value=os.getcwd())
-    def test_run_1_of_100_failures(self, add_tests, cwd):
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.smoke.run())
-            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
-                              self.smoke.is_successful())
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko(self, *args):
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.smoke.run())
+        self.assertEquals(
+            TestCase.EX_TESTCASE_FAILED, self.smoke.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
+            netconf_override=mock.ANY, os_creds=self.os_creds,
+            suite=mock.ANY, use_floating_ips=True, use_keystone=True)
 
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                 'add_openstack_integration_tests')
-    @mock.patch('os.path.join', return_value=os.getcwd())
-    def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
+    @mock.patch('unittest.TextTestRunner.run',
+                return_value=mock.MagicMock(name='unittest.TextTestResult'))
+    def test_run_1_of_100_ko_criteria(self, *args):
         self.smoke.criteria = 90
-        result = mock.MagicMock(name='unittest.TextTestResult')
-        result.testsRun = 100
-        result.failures = ['foo']
-        result.errors = []
-        with mock.patch('unittest.TextTestRunner.run', return_value=result):
-            self.assertEquals(TestCase.EX_OK, self.smoke.run())
-            self.assertEquals(TestCase.EX_OK,
-                              self.smoke.is_successful())
+        args[0].return_value.testsRun = 100
+        args[0].return_value.failures = ['foo']
+        args[0].return_value.errors = []
+        self.assertEquals(TestCase.EX_OK, self.smoke.run())
+        self.assertEquals(
+            TestCase.EX_OK, self.smoke.is_successful())
+        args[0].assert_called_with(mock.ANY)
+        args[1].assert_called_with(
+            ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
+            netconf_override=None, os_creds=self.os_creds,
+            suite=mock.ANY, use_floating_ips=True, use_keystone=True)
+
+
+if __name__ == "__main__":
+    logging.disable(logging.CRITICAL)
+    unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/vping/__init__.py b/functest/tests/unit/openstack/vping/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
index d494a79..42650de 100644 (file)
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
 #
 # All rights reserved. This program and the accompanying materials
@@ -8,6 +10,7 @@
 
 # pylint: disable=missing-docstring
 
+import logging
 import unittest
 
 import mock
@@ -46,21 +49,25 @@ class VPingUserdataTesting(unittest.TestCase):
             os_creds=self.os_creds)
 
     @mock.patch('snaps.openstack.utils.deploy_utils.create_vm_instance')
-    @mock.patch('functest.opnfv_tests.openstack.vping.vping_base.os.'
-                'path.exists', return_value=True)
+    @mock.patch('os.path.exists', return_value=True)
     @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
                 return_value=None)
     @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
                 'get_port_ip', return_value='10.0.0.1')
     @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
                 'vm_active', return_value=True)
-    def test_vping_userdata(self, deploy_vm, path_exists, create_flavor,
-                            get_port_ip, vm_active):
+    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
+                'get_ext_net_name', return_value='foo')
+    def test_vping_userdata(self, *args):
+        # pylint: disable=unused-argument
         with mock.patch('snaps.openstack.utils.deploy_utils.create_image',
                         return_value=OpenStackImage(self.os_creds, None)), \
                 mock.patch('snaps.openstack.utils.deploy_utils.create_network',
                            return_value=OpenStackNetwork(
                                self.os_creds, NetworkConfig(name='foo'))), \
+                mock.patch('snaps.openstack.utils.deploy_utils.create_router',
+                           return_value=OpenStackRouter(
+                               self.os_creds, RouterConfig(name='foo'))), \
                 mock.patch('snaps.openstack.utils.deploy_utils.'
                            'create_vm_instance',
                            return_value=OpenStackVmInstance(
@@ -91,8 +98,7 @@ class VPingSSHTesting(unittest.TestCase):
             os_creds=self.os_creds)
 
     @mock.patch('snaps.openstack.utils.deploy_utils.create_vm_instance')
-    @mock.patch('functest.opnfv_tests.openstack.vping.vping_base.os.'
-                'path.exists', return_value=True)
+    @mock.patch('os.path.exists', return_value=True)
     @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
                 return_value=None)
     @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
@@ -110,10 +116,8 @@ class VPingSSHTesting(unittest.TestCase):
                 'VPingSSH._do_vping_ssh', return_value=TestCase.EX_OK)
     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
                 'get_ext_net_name', return_value='foo')
-    def test_vping_ssh(self, create_vm, path_exists,
-                       flavor_create, get_port_ip, vm_active, ssh_active,
-                       ssh_client, scp_client, trans_script, do_vping_ssh,
-                       ext_net_name):
+    def test_vping_ssh(self, *args):
+        # pylint: disable=unused-argument
         os_vm_inst = mock.MagicMock(name='get_console_output')
         os_vm_inst.get_console_output.return_value = 'vPing OK'
         ssh_client = mock.MagicMock(name='get_transport')
@@ -159,3 +163,8 @@ class VPingSSHTesting(unittest.TestCase):
                            'OpenStackVmInstance.'
                            'ssh_client', return_value=ssh_client):
             self.assertEquals(TestCase.EX_OK, self.vping_ssh.run())
+
+
+if __name__ == "__main__":
+    logging.disable(logging.CRITICAL)
+    unittest.main(verbosity=2)
diff --git a/tox.ini b/tox.ini
index 251ca26..b1324cf 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -34,6 +34,8 @@ modules =
   functest.cli
   functest.core
   functest.energy
+  functest.opnfv_tests.openstack.snaps
+  functest.opnfv_tests.openstack.vping
   functest.opnfv_tests.sdn.odl
   functest.opnfv_tests.vnf.router
   functest.tests.unit.ci
@@ -41,6 +43,8 @@ modules =
   functest.tests.unit.core
   functest.tests.unit.energy
   functest.tests.unit.odl
+  functest.tests.unit.openstack.snaps
+  functest.tests.unit.openstack.vping
   functest.tests.unit.vnf.router
   functest.tests.unit.utils.test_decorators
   functest.utils.config