Add configuration for Mistral tempest testing

Skip tests if Mistral service in not installed when running tempest.

Change-Id: Ic51afda598f9e8fdb63937f7aa55deb6cea65285
Closes-Bug: #1592748
This commit is contained in:
Lingxian Kong 2016-06-16 00:00:49 +12:00
parent 9f6e887921
commit 545fb3686e
3 changed files with 40 additions and 2 deletions

View File

@ -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."),
]

View File

@ -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

View File

@ -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.