diff --git a/mistral_tempest_tests/config.py b/mistral_tempest_tests/config.py new file mode 100644 index 000000000..8a42a10f9 --- /dev/null +++ b/mistral_tempest_tests/config.py @@ -0,0 +1,25 @@ +# Copyright 2016 Catalyst IT Limited +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from oslo_config import cfg + +service_available_group = cfg.OptGroup(name="service_available", + title="Available OpenStack Services") + +ServiceAvailableGroup = [ + cfg.BoolOpt('mistral', + default=True, + help="Whether or not Mistral is expected to be available."), +] diff --git a/mistral_tempest_tests/plugin.py b/mistral_tempest_tests/plugin.py index ff7f0a6ad..c7b1bde42 100644 --- a/mistral_tempest_tests/plugin.py +++ b/mistral_tempest_tests/plugin.py @@ -16,8 +16,11 @@ import os +from tempest import config from tempest.test_discover import plugins +from mistral_tempest_tests import config as mistral_config + class MistralTempestPlugin(plugins.TempestPlugin): def load_tests(self): @@ -28,7 +31,11 @@ class MistralTempestPlugin(plugins.TempestPlugin): return full_test_dir, base_path def register_opts(self, conf): - pass + config.register_opt_group( + conf, + mistral_config.service_available_group, + mistral_config.ServiceAvailableGroup + ) def get_opt_lists(self): pass diff --git a/mistral_tempest_tests/services/base.py b/mistral_tempest_tests/services/base.py index 81d5dc38b..338cbeeb4 100644 --- a/mistral_tempest_tests/services/base.py +++ b/mistral_tempest_tests/services/base.py @@ -247,9 +247,15 @@ class AuthProv(auth.KeystoneV2AuthProvider): class TestCase(test.BaseTestCase): - credentials = ['primary', 'alt'] + @classmethod + def skip_checks(cls): + super(TestCase, cls).skip_checks() + + if not CONF.service_available.mistral: + raise cls.skipException("Mistral support is required.") + @classmethod def resource_setup(cls): """Client authentication.