From 088393d5216b49f909abcb1758eb4d3ebd88c980 Mon Sep 17 00:00:00 2001 From: Rodrigo Duarte Date: Thu, 24 Mar 2016 15:08:44 -0300 Subject: [PATCH] Base for keystone tempest plugin This patch adds the basic files and configs in order to enable the keystone tempest plugin interface using tempest-plugin-cookiecutter. Since we are adding them inside keystone's repository, they can be installed alongside keystone and to run the tests (when we have one) we simply use `testr run keystone_tempest_plugin` in tempest. For more details about the tempest plugin interface see [1] [1] http://docs.openstack.org/developer/tempest/plugin.html Change-Id: Ia42e79246251e8af1010aa8eaf462aacf75644a7 Partially-Implements: bp keystone-tempest-plugin-tests --- keystone_tempest_plugin/README.rst | 6 +++ keystone_tempest_plugin/__init__.py | 0 keystone_tempest_plugin/config.py | 28 +++++++++++++ keystone_tempest_plugin/plugin.py | 39 +++++++++++++++++++ keystone_tempest_plugin/services/__init__.py | 0 keystone_tempest_plugin/tests/__init__.py | 0 keystone_tempest_plugin/tests/api/__init__.py | 0 .../tests/scenario/__init__.py | 0 setup.cfg | 5 +++ 9 files changed, 78 insertions(+) create mode 100644 keystone_tempest_plugin/README.rst create mode 100644 keystone_tempest_plugin/__init__.py create mode 100644 keystone_tempest_plugin/config.py create mode 100644 keystone_tempest_plugin/plugin.py create mode 100644 keystone_tempest_plugin/services/__init__.py create mode 100644 keystone_tempest_plugin/tests/__init__.py create mode 100644 keystone_tempest_plugin/tests/api/__init__.py create mode 100644 keystone_tempest_plugin/tests/scenario/__init__.py diff --git a/keystone_tempest_plugin/README.rst b/keystone_tempest_plugin/README.rst new file mode 100644 index 0000000000..c880e28041 --- /dev/null +++ b/keystone_tempest_plugin/README.rst @@ -0,0 +1,6 @@ +========================== +Tempest tests for keystone +========================== + +This directory contains Tempest tests to cover the keystone project. + diff --git a/keystone_tempest_plugin/__init__.py b/keystone_tempest_plugin/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keystone_tempest_plugin/config.py b/keystone_tempest_plugin/config.py new file mode 100644 index 0000000000..aaebcfb171 --- /dev/null +++ b/keystone_tempest_plugin/config.py @@ -0,0 +1,28 @@ +# Copyright 2016 Red Hat, Inc. +# 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 + + +identity_group = cfg.OptGroup(name='identity', + title="Keystone Configuration Options") + +IdentityGroup = [] + +identity_feature_group = cfg.OptGroup(name='identity-feature-enabled', + title='Enabled Identity Features') + +IdentityFeatureGroup = [] diff --git a/keystone_tempest_plugin/plugin.py b/keystone_tempest_plugin/plugin.py new file mode 100644 index 0000000000..9fe67e8f8c --- /dev/null +++ b/keystone_tempest_plugin/plugin.py @@ -0,0 +1,39 @@ +# Copyright 2016 Red Hat, Inc. +# 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. + + +import os + +from tempest import config +from tempest.test_discover import plugins + +from keystone_tempest_plugin import config as project_config + + +class KeystoneTempestPlugin(plugins.TempestPlugin): + def load_tests(self): + base_path = os.path.split(os.path.dirname( + os.path.abspath(__file__)))[0] + test_dir = "keystone_tempest_plugin/tests" + 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, project_config.identity_group, + project_config.IdentityGroup) + + def get_opt_lists(self): + return [(project_config.identity_group.name, + project_config.IdentityGroup)] diff --git a/keystone_tempest_plugin/services/__init__.py b/keystone_tempest_plugin/services/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keystone_tempest_plugin/tests/__init__.py b/keystone_tempest_plugin/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keystone_tempest_plugin/tests/api/__init__.py b/keystone_tempest_plugin/tests/api/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keystone_tempest_plugin/tests/scenario/__init__.py b/keystone_tempest_plugin/tests/scenario/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/setup.cfg b/setup.cfg index b1a8998578..03242e2882 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,6 +19,7 @@ classifier = [files] packages = keystone + keystone_tempest_plugin [extras] ldap = @@ -204,3 +205,7 @@ paste.app_factory = public_service = keystone.version.service:public_app_factory public_version_service = keystone.version.service:public_version_app_factory service_v3 = keystone.version.service:v3_app_factory + +tempest.test_plugins = + keystone_tests = keystone_tempest_plugin.plugin:KeystoneTempestPlugin +