diff --git a/functionaltests/__init__.py b/functionaltests/__init__.py index cdcb9659..42d6f6f6 100644 --- a/functionaltests/__init__.py +++ b/functionaltests/__init__.py @@ -13,33 +13,8 @@ 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 oslo.config import cfg -from tempest import config +from functionaltests.common import config -CONF = config.CONF - - -def _get_conf_file_path(): - functional_dir = os.path.split(os.path.abspath(__file__))[0] - base_dir = os.path.split(functional_dir)[0] - return os.path.join(base_dir, 'etc', 'functional_tests.conf') - - -# Use local tempest conf if one is available. -conf_file = _get_conf_file_path() -if os.path.exists(conf_file): - CONF.set_config_path(conf_file) - - -CONF.register_group(cfg.OptGroup('keymanager')) -CONF.register_opt(cfg.StrOpt('url'), group='keymanager') -CONF.register_opt(cfg.StrOpt('username'), group='keymanager') -CONF.register_opt(cfg.StrOpt('password'), group='keymanager') -CONF.register_opt(cfg.StrOpt('project_name'), group='keymanager') -CONF.register_opt(cfg.StrOpt('project_id'), group='keymanager') -CONF.register_opt(cfg.IntOpt('max_payload_size', default=10000), - group='keymanager') -CONF.register_opt(cfg.StrOpt('project_domain_name'), group='keymanager') +CONF = config.get_config() diff --git a/functionaltests/base.py b/functionaltests/base.py index 9df8576f..8bd75a82 100644 --- a/functionaltests/base.py +++ b/functionaltests/base.py @@ -14,15 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. """ import logging -import os +from functionaltests.common import config import oslotest.base as oslotest -from barbicanclient import client -from keystoneclient.auth import identity -from keystoneclient import session -from tempest import config -CONF = config.CONF +CONF = config.get_config() class BaseTestCase(oslotest.BaseTestCase): diff --git a/functionaltests/cli/v1/behaviors/base_behaviors.py b/functionaltests/cli/v1/behaviors/base_behaviors.py index 3514e6c1..a4e75fad 100644 --- a/functionaltests/cli/v1/behaviors/base_behaviors.py +++ b/functionaltests/cli/v1/behaviors/base_behaviors.py @@ -19,9 +19,9 @@ import re import six from barbicanclient import barbican -from tempest import config +from functionaltests.common import config -CONF = config.CONF +CONF = config.get_config() class BaseBehaviors(object): diff --git a/functionaltests/client/base.py b/functionaltests/client/base.py index ace11bf2..3eb3cb61 100644 --- a/functionaltests/client/base.py +++ b/functionaltests/client/base.py @@ -16,12 +16,12 @@ limitations under the License. import logging from functionaltests.base import BaseTestCase +from functionaltests.common import config from barbicanclient import client from keystoneclient.auth import identity from keystoneclient import session -from tempest import config -CONF = config.CONF +CONF = config.get_config() class TestCase(BaseTestCase): diff --git a/functionaltests/client/test_client_connectivity.py b/functionaltests/client/test_client_connectivity.py index c2a28ea2..03067699 100644 --- a/functionaltests/client/test_client_connectivity.py +++ b/functionaltests/client/test_client_connectivity.py @@ -15,13 +15,13 @@ import logging from functionaltests.base import BaseTestCase +from functionaltests.common import config from barbicanclient import client from barbicanclient import exceptions from keystoneclient.auth import identity from keystoneclient import session -from tempest import config -CONF = config.CONF +CONF = config.get_config() class WhenTestingClientConnectivity(BaseTestCase): diff --git a/functionaltests/common/__init__.py b/functionaltests/common/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/functionaltests/common/config.py b/functionaltests/common/config.py new file mode 100644 index 00000000..de64634d --- /dev/null +++ b/functionaltests/common/config.py @@ -0,0 +1,80 @@ +""" +Copyright 2015 Rackspace + +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 oslo_config import cfg + +TEST_CONF = None + + +def setup_config(config_file=''): + global TEST_CONF + TEST_CONF = cfg.ConfigOpts() + + identity_group = cfg.OptGroup(name='identity') + identity_options = [ + cfg.StrOpt('uri', default='http://localhost:5000/v2.0'), + cfg.StrOpt('uri_v3', default='http://localhost:5000/v3'), + cfg.StrOpt('auth_version', default='v3'), + cfg.StrOpt('username', default='admin'), + cfg.StrOpt('password', default='secretadmin'), + cfg.StrOpt('tenant_name', default='admin'), + cfg.StrOpt('domain_name', default='Default'), + cfg.StrOpt('admin_username', default='admin'), + cfg.StrOpt('admin_password', default='secretadmin'), + cfg.StrOpt('admin_tenant_name', default='admin'), + cfg.StrOpt('admin_domain_name', default='Default') + ] + TEST_CONF.register_group(identity_group) + TEST_CONF.register_opts(identity_options, group=identity_group) + + keymanager_group = cfg.OptGroup(name='keymanager') + keymanager_options = [ + cfg.StrOpt('url', default='http://localhost:9311'), + cfg.StrOpt('username', default='admin'), + cfg.StrOpt('password', default='secretadmin'), + cfg.StrOpt('project_name', default='admin'), + cfg.StrOpt('project_id', default='admin'), + cfg.StrOpt('project_domain_name', default='Default'), + cfg.IntOpt('max_payload_size', default=10000) + ] + TEST_CONF.register_group(keymanager_group) + TEST_CONF.register_opts(keymanager_options, group=keymanager_group) + + # Figure out which config to load + config_to_load = [] + local_config = './etc/functional_tests.conf' + devstack_config = '../etc/functional_tests.conf' + if os.path.isfile(config_file): + config_to_load.append(config_file) + elif os.path.isfile(local_config): + config_to_load.append(local_config) + elif os.path.isfile(devstack_config): + config_to_load.append(devstack_config) + else: + config_to_load.append('/etc/functional_tests.conf') + + # Actually parse config + TEST_CONF( + (), # Required to load a anonymous config + default_config_files=config_to_load + ) + + +def get_config(): + if not TEST_CONF: + setup_config() + return TEST_CONF diff --git a/functionaltests/run_tests.sh b/functionaltests/run_tests.sh index 6e53ab38..214d0b12 100755 --- a/functionaltests/run_tests.sh +++ b/functionaltests/run_tests.sh @@ -11,12 +11,6 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. -# Where tempest code lives - -TEMPEST_DIR=${TEMPEST_DIR:-/opt/stack/new/tempest} - -# Install tempest -pip install -e $TEMPEST_DIR # Install test-requirements pip install -r /opt/stack/new/python-barbicanclient/test-requirements.txt