Enhance patrole configurations 51/53451/2
authorCédric Ollivier <cedric.ollivier@orange.com>
Sat, 10 Mar 2018 12:34:43 +0000 (13:34 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 10 Mar 2018 13:12:20 +0000 (14:12 +0100)
It allows listing the OpenStack services tested or setting test
exlusions (e.g. tests requiring GRE as overlay).

It should be noted that Keystone and Nova can't currently be tested
without their default policy.json.

Change-Id: I8909694b4ffc315959504441f5ea0b1f3023fe7c
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
docker/patrole/testcases.yaml
functest/opnfv_tests/openstack/patrole/patrole.py

index 5615a90..5d9199c 100644 (file)
@@ -22,3 +22,9 @@ tiers:
                     class: 'Patrole'
                     args:
                         role: 'admin'
+                        services:
+                            - 'image'
+                            - 'network'
+                            - 'volume'
+                        exclude:
+                            - 'test_networks_multiprovider_rbac'
index 8f30c48..1f16745 100644 (file)
@@ -29,8 +29,6 @@ class Patrole(tempest.TempestCommon):
         if "case_name" not in kwargs:
             kwargs["case_name"] = 'patrole'
         super(Patrole, self).__init__(**kwargs)
-        self.mode = ("'(?!.*test_networks_multiprovider_rbac)"
-                     "(?=patrole_tempest_plugin.tests.api.(image|network))'")
         self.res_dir = os.path.join(
             getattr(config.CONF, 'dir_results'), 'patrole')
         self.raw_list = os.path.join(self.res_dir, 'test_raw_list.txt')
@@ -38,6 +36,10 @@ class Patrole(tempest.TempestCommon):
 
     def run(self, **kwargs):
         self.start_time = time.time()
+        for exclude in kwargs.get('exclude', []):
+            self.mode = "{}(?!.*{})".format(self.mode, exclude)
+        self.mode = "'{}(?=patrole_tempest_plugin.tests.api.({}))'".format(
+            self.mode, '|'.join(kwargs.get('services', [])))
         try:
             if not os.path.exists(self.res_dir):
                 os.makedirs(self.res_dir)