Added support for scenario-based flavor creation. 77/29877/5
authorspisarski <s.pisarski@cablelabs.com>
Mon, 6 Mar 2017 19:58:34 +0000 (12:58 -0700)
committerMorgan Richomme <morgan.richomme@orange.com>
Wed, 8 Mar 2017 09:57:30 +0000 (09:57 +0000)
As certain scenarios such as, DPDK, FDIO, and OVS use cases
require special 'hw:' settings to flavors, SNAPS-OO has just
implemented the ability to take in these configuration values
to apply to its integration tests. This change checks the
scenario and should be configuring the flavor metadata accordingly.

Also see SNAPS-38

Used this as an opportunity to refactor the SNAPS test classes as well...

JIRA: FUNCTEST-746

Change-Id: I63535776acde088a7461f602966a324b6207592d
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
functest/core/pytest_suite_runner.py
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_test_runner.py [new file with mode: 0644]

index c168d7d..f0ae265 100644 (file)
@@ -1,5 +1,3 @@
-#!/usr/bin/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
index 17d05b9..ad77d9b 100644 (file)
@@ -9,12 +9,12 @@ import unittest
 
 from snaps import test_suite_builder
 
-from functest.core.pytest_suite_runner import PyTestSuiteRunner
-from functest.opnfv_tests.openstack.snaps import snaps_utils
+from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
+    SnapsTestRunner
 from functest.utils.constants import CONST
 
 
-class ApiCheck(PyTestSuiteRunner):
+class ApiCheck(SnapsTestRunner):
     """
     This test executes the Python Tests included with the SNAPS libraries
     that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
@@ -25,10 +25,9 @@ class ApiCheck(PyTestSuiteRunner):
 
         self.suite = unittest.TestSuite()
         self.case_name = "api_check"
-        ext_net_name = snaps_utils.get_ext_net_name()
 
         test_suite_builder.add_openstack_api_tests(
             self.suite,
             CONST.openstack_creds,
-            ext_net_name,
+            self.ext_net_name,
             use_keystone=CONST.snaps_use_keystone)
index 11f8ad0..0637bcf 100644 (file)
@@ -9,12 +9,12 @@ import unittest
 
 from snaps import test_suite_builder
 
-from functest.core.pytest_suite_runner import PyTestSuiteRunner
-from functest.opnfv_tests.openstack.snaps import snaps_utils
+from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
+    SnapsTestRunner
 from functest.utils.constants import CONST
 
 
-class ConnectionCheck(PyTestSuiteRunner):
+class ConnectionCheck(SnapsTestRunner):
     """
     This test executes the Python Tests included with the SNAPS libraries
     that simply obtain the different OpenStack clients and may perform
@@ -25,10 +25,9 @@ class ConnectionCheck(PyTestSuiteRunner):
 
         self.suite = unittest.TestSuite()
         self.case_name = "connection_check"
-        ext_net_name = snaps_utils.get_ext_net_name()
 
         test_suite_builder.add_openstack_client_tests(
             self.suite,
             CONST.openstack_creds,
-            ext_net_name,
+            self.ext_net_name,
             use_keystone=CONST.snaps_use_keystone)
index c19bf39..8fece74 100644 (file)
@@ -7,15 +7,15 @@
 
 import unittest
 
+from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
+    SnapsTestRunner
+from functest.utils.constants import CONST
+
 from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
 from snaps.openstack.tests.create_instance_tests import SimpleHealthCheck
 
-from functest.core.pytest_suite_runner import PyTestSuiteRunner
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils.constants import CONST
-
 
-class HealthCheck(PyTestSuiteRunner):
+class HealthCheck(SnapsTestRunner):
     """
     This test executes the SNAPS Python Test case SimpleHealthCheck which
     creates a VM with a single port with an IPv4 address that is assigned by
@@ -26,7 +26,6 @@ class HealthCheck(PyTestSuiteRunner):
 
         self.suite = unittest.TestSuite()
         self.case_name = "snaps_health_check"
-        ext_net_name = snaps_utils.get_ext_net_name()
 
         image_custom_config = None
         if hasattr(CONST, 'snaps_health_check'):
@@ -34,6 +33,7 @@ class HealthCheck(PyTestSuiteRunner):
 
         self.suite.addTest(
             OSIntegrationTestCase.parameterize(
-                SimpleHealthCheck, CONST.openstack_creds, ext_net_name,
+                SimpleHealthCheck, CONST.openstack_creds, self.ext_net_name,
                 use_keystone=CONST.snaps_use_keystone,
+                flavor_metadata=self.flavor_metadata,
                 image_metadata=image_custom_config))
index 83eb660..4b8ba7d 100644 (file)
@@ -10,12 +10,12 @@ import unittest
 
 from snaps import test_suite_builder
 
-from functest.core.pytest_suite_runner import PyTestSuiteRunner
-from functest.opnfv_tests.openstack.snaps import snaps_utils
+from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
+    SnapsTestRunner
 from functest.utils.constants import CONST
 
 
-class SnapsSmoke(PyTestSuiteRunner):
+class SnapsSmoke(SnapsTestRunner):
     """
     This test executes the Python Tests included with the SNAPS libraries
     that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
@@ -27,7 +27,6 @@ class SnapsSmoke(PyTestSuiteRunner):
         self.suite = unittest.TestSuite()
         self.case_name = "snaps_smoke"
         use_fip = CONST.snaps_use_floating_ips
-        ext_net_name = snaps_utils.get_ext_net_name()
 
         # Tests requiring floating IPs leverage files contained within the
         # SNAPS repository and are found relative to that path
@@ -38,6 +37,6 @@ class SnapsSmoke(PyTestSuiteRunner):
         test_suite_builder.add_openstack_integration_tests(
             self.suite,
             CONST.openstack_creds,
-            ext_net_name,
+            self.ext_net_name,
             use_keystone=CONST.snaps_use_keystone,
             use_floating_ips=use_fip)
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
new file mode 100644 (file)
index 0000000..67cd941
--- /dev/null
@@ -0,0 +1,30 @@
+# 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
+# which accompanies this distribution, and is available at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+
+from functest.core.pytest_suite_runner import PyTestSuiteRunner
+from functest.opnfv_tests.openstack.snaps import snaps_utils
+from functest.utils import functest_utils
+
+from snaps.openstack import create_flavor
+
+
+class SnapsTestRunner(PyTestSuiteRunner):
+    """
+    This test executes the SNAPS Python Test case SimpleHealthCheck which
+    creates a VM with a single port with an IPv4 address that is assigned by
+    DHCP. This test then validates the expected IP with the actual
+    """
+    def __init__(self):
+        super(SnapsTestRunner, self).__init__()
+
+        self.ext_net_name = snaps_utils.get_ext_net_name()
+
+        scenario = functest_utils.get_scenario()
+
+        self.flavor_metadata = create_flavor.MEM_PAGE_SIZE_ANY
+        if 'ovs' in scenario or 'fdio' in scenario:
+            self.flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE