Allow blacklisting tests if public endpoint only 85/68685/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Wed, 23 Oct 2019 11:56:32 +0000 (13:56 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 26 Oct 2019 07:36:36 +0000 (09:36 +0200)
It allows reusing the blacklisting system if only public endpoints are
reachable (ONAP Openlab testing). It contains a first list of
tempest-based tests which force the use of admin endpoints.

Change-Id: Ic1ab07dec3ae1f2a0ca50b80e08cd0ac396f2e56
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 9679178a1f99b38264a2afb56097700bef34868a)

functest/opnfv_tests/openstack/tempest/custom_tests/public_blacklist.yaml [new file with mode: 0644]
functest/opnfv_tests/openstack/tempest/tempest.py
functest/tests/unit/openstack/tempest/test_tempest.py
functest/utils/env.py

diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/public_blacklist.yaml b/functest/opnfv_tests/openstack/tempest/custom_tests/public_blacklist.yaml
new file mode 100644 (file)
index 0000000..e53b577
--- /dev/null
@@ -0,0 +1,15 @@
+---
+-
+    scenarios:
+        - os-*
+    tests:
+        - neutron_tempest_plugin.api.admin.test_floating_ips_admin_actions.FloatingIPAdminTestJSON.test_associate_floating_ip_with_port_from_another_project
+        - neutron_tempest_plugin.api.admin.test_quotas.QuotasTest.test_detail_quotas
+        - neutron_tempest_plugin.api.admin.test_quotas.QuotasTest.test_quotas
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_floatingip_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_network_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_port_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_router_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_security_group_rule_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_security_group_when_quotas_is_full
+        - neutron_tempest_plugin.api.admin.test_quotas_negative.QuotasAdminNegativeTestJSON.test_create_subnet_when_quotas_is_full
index 908d3bc..05758ab 100644 (file)
@@ -50,6 +50,9 @@ class TempestCommon(singlevm.VmReady2):
     tempest_blacklist = pkg_resources.resource_filename(
         'functest',
         'opnfv_tests/openstack/tempest/custom_tests/blacklist.yaml')
+    tempest_public_blacklist = pkg_resources.resource_filename(
+        'functest',
+        'opnfv_tests/openstack/tempest/custom_tests/public_blacklist.yaml')
 
     def __init__(self, **kwargs):
         if "case_name" not in kwargs:
@@ -350,7 +353,7 @@ class TempestCommon(singlevm.VmReady2):
             LOGGER.info("%s\n%s", cmd, output.decode("utf-8"))
         os.remove('/etc/tempest.conf')
 
-    def apply_tempest_blacklist(self):
+    def apply_tempest_blacklist(self, black_list):
         """Exclude blacklisted test cases."""
         LOGGER.debug("Applying tempest blacklist...")
         if os.path.exists(self.raw_list):
@@ -363,7 +366,7 @@ class TempestCommon(singlevm.VmReady2):
             deploy_scenario = env.get('DEPLOY_SCENARIO')
             if bool(deploy_scenario):
                 # if DEPLOY_SCENARIO is set we read the file
-                black_list_file = open(self.tempest_blacklist)
+                black_list_file = open(black_list)
                 black_list_yaml = yaml.safe_load(black_list_file)
                 black_list_file.close()
                 for item in black_list_yaml:
@@ -602,7 +605,10 @@ class TempestCommon(singlevm.VmReady2):
             shutil.copy("/etc/rally/rally.conf", self.res_dir)
             self.configure(**kwargs)
             self.generate_test_list(**kwargs)
-            self.apply_tempest_blacklist()
+            self.apply_tempest_blacklist(TempestCommon.tempest_blacklist)
+            if env.get('PUBLIC_ENDPOINT_ONLY').lower() == 'true':
+                self.apply_tempest_blacklist(
+                    TempestCommon.tempest_public_blacklist)
             self.run_verifier_tests(**kwargs)
             self.parse_verifier_result()
             rally.RallyBase.verify_report(
index 87438ae..71aa5a2 100644 (file)
@@ -125,7 +125,8 @@ class OSTempestTesting(unittest.TestCase):
                               return_value=['test1', 'test2']):
             self.tempestcommon.tempest_blacklist = Exception
             os.environ['DEPLOY_SCENARIO'] = 'deploy_scenario'
-            self.tempestcommon.apply_tempest_blacklist()
+            self.tempestcommon.apply_tempest_blacklist(
+                self.tempestcommon.tempest_blacklist)
             obj = mock_open()
             obj.write.assert_any_call('test1\n')
             obj.write.assert_any_call('test2\n')
@@ -147,7 +148,8 @@ class OSTempestTesting(unittest.TestCase):
             mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
                        'yaml.safe_load', return_value=item_dict):
             os.environ['DEPLOY_SCENARIO'] = 'deploy_scenario'
-            self.tempestcommon.apply_tempest_blacklist()
+            self.tempestcommon.apply_tempest_blacklist(
+                self.tempestcommon.tempest_blacklist)
             obj = mock_open()
             obj.write.assert_any_call('test1\n')
             self.assertFalse(obj.write.assert_any_call('test2\n'))
index 7bdca89..5d8e861 100644 (file)
@@ -40,7 +40,8 @@ INPUTS = {
     'USE_DYNAMIC_CREDENTIALS': 'True',
     'BLOCK_MIGRATION': 'True',
     'CLEAN_ORPHAN_SECURITY_GROUPS': 'True',
-    'SKIP_DOWN_HYPERVISORS': 'False'
+    'SKIP_DOWN_HYPERVISORS': 'False',
+    'PUBLIC_ENDPOINT_ONLY': 'False'
 }