diff --git a/aodh/tests/tempest/api/base.py b/aodh/tests/tempest/api/base.py index 53dd0940e..dbe617853 100644 --- a/aodh/tests/tempest/api/base.py +++ b/aodh/tests/tempest/api/base.py @@ -10,11 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from tempest_lib import exceptions as lib_exc - from tempest.common.utils import data_utils from tempest import config import tempest.test +from tempest_lib import exceptions as lib_exc + +from aodh.tests.tempest.service import client CONF = config.CONF @@ -23,6 +24,7 @@ class BaseAlarmingTest(tempest.test.BaseTestCase): """Base test case class for all Alarming API tests.""" credentials = ['primary'] + client_manager = client.Manager @classmethod def skip_checks(cls): diff --git a/aodh/tests/tempest/plugin.py b/aodh/tests/tempest/plugin.py new file mode 100644 index 000000000..e4708faa1 --- /dev/null +++ b/aodh/tests/tempest/plugin.py @@ -0,0 +1,44 @@ +# +# Copyright 2015 NEC Corporation. +# +# 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. + +import os + +from tempest import config +from tempest.test_discover import plugins + +import aodh +from aodh.tests.tempest import config as tempest_config + + +class AodhTempestPlugin(plugins.TempestPlugin): + + def load_tests(self): + base_path = os.path.split(os.path.dirname( + os.path.abspath(aodh.__file__)))[0] + test_dir = "tempest" + full_test_dir = os.path.join(base_path, test_dir) + return full_test_dir, base_path + + def register_opts(self, conf): + config.register_opt_group(conf, + tempest_config.service_available_group, + tempest_config.ServiceAvailableGroup) + config.register_opt_group(conf, + tempest_config.alarming_group, + tempest_config.AlarmingGroup) + + def get_opt_lists(self): + return [(tempest_config.alarming_group.name, + tempest_config.AlarmingGroup)] diff --git a/aodh/tests/tempest/service/client.py b/aodh/tests/tempest/service/client.py index ce142119b..fbbbd4730 100644 --- a/aodh/tests/tempest/service/client.py +++ b/aodh/tests/tempest/service/client.py @@ -15,8 +15,12 @@ from oslo_serialization import jsonutils as json from six.moves.urllib import parse as urllib - from tempest.common import service_client +from tempest import config +from tempest import manager + + +CONF = config.CONF class AlarmingClient(service_client.ServiceClient): @@ -96,3 +100,22 @@ class AlarmingClient(service_client.ServiceClient): self.expected_success(200, resp.status) body = self.deserialize(body) return service_client.ResponseBodyData(resp, body) + + +class Manager(manager.Manager): + + def __init__(self, credentials=None, service=None): + super(Manager, self).__init__(credentials, service) + self._set_alarming_client() + + def _set_alarming_client(self): + if CONF.service_available.aodh: + self.alarming_client = AlarmingClient( + self.auth_provider, + CONF.alarming.catalog_type, + CONF.identity.region, + endpoint_type=CONF.alarming.endpoint_type, + disable_ssl_certificate_validation=( + CONF.identity.disable_ssl_certificate_validation), + ca_certs=CONF.identity.ca_certificates_file, + trace_requests=CONF.debug.trace_requests) diff --git a/setup.cfg b/setup.cfg index 4278b91f3..3d83bbcda 100644 --- a/setup.cfg +++ b/setup.cfg @@ -114,6 +114,9 @@ oslo.config.opts = keystoneauth1.plugin = password-aodh-legacy = aodh.keystone_client:LegacyAodhKeystoneLoader +tempest.test_plugins = + aodh_tests = aodh.tests.tempest.plugin:AodhTempestPlugin + [build_sphinx] all_files = 1 build-dir = doc/build