Removal of test .conf files

The following configuration files used for testing purposes have
been migrated to use the configuration fixture instead of relying
on a mechanism to load a large number of configuration options
from various locations on disk.

    keystone/tests/auth_plugin_external_default_legacy.conf
    keystone/tests/auth_plugin_external_disabled.conf
    keystone/tests/auth_plugin_external_domain.conf
    keystone/tests/auth_plugin_external_domain_legacy.conf
    keystone/tests/backend_rules.conf
    keystone/tests/test_associate_project_endpoint_extension.conf
    keystone/tests/test_auth_plugin_by_class_name.conf
    keystone/tests/test_overrides.conf
    keystone/tests/test_pki_token_provider.conf
    keystone/tests/test_revoke_kvs.conf
    keystone/tests/test_revoke_sql.conf
    keystone/tests/test_uuid_token_provider.conf

The following configuration files have had a number of elements
extracted to be used within the config fixture instead of the
configuration files. Most of these files contain controls that
need to be overridden to test against alternative (non internal /
in-memory) "live" configurations.

   keystone/tests/backend_ldap.conf
   keystone/tests/backend_liveldap.conf
   keystone/tests/backend_multi_ldap_sql.conf
   keystone/tests/backend_sql.conf
   keystone/tests/backend_tls_liveldap.conf

This patchset also consolidates the setting of the default
[database] ``connection`` option so that it can be overridden
as needed for testing against non-sqlite database engines.

Change-Id: I996709546f713c36bf654c5aea64cbf3472ffef1
This commit is contained in:
Morgan Fainberg 2014-03-10 20:03:33 -07:00
parent 5180cf10c4
commit fa807ae345
34 changed files with 303 additions and 304 deletions

View File

@ -69,9 +69,16 @@ class LiveLDAPIdentity(test_backend_ldap.LDAPIdentity):
{'objectclass': 'organizationalUnit',
'ou': 'UserGroups'})
def _set_config(self):
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_liveldap.conf')])
def config_files(self):
config_files = super(LiveLDAPIdentity, self).config_files()
config_files.append(tests.dirs.tests('backend_liveldap.conf'))
return config_files
def config_overrides(self):
super(LiveLDAPIdentity, self).config_overrides()
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.ldap.Identity')
def test_build_tree(self):
"""Regression test for building the tree names

View File

@ -36,9 +36,16 @@ def create_object(dn, attrs):
class LiveTLSLDAPIdentity(_ldap_livetest.LiveLDAPIdentity):
def _set_config(self):
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_tls_liveldap.conf')])
def config_files(self):
config_files = super(LiveTLSLDAPIdentity, self).config_files()
config_files.append(tests.dirs.tests('backend_tls_liveldap.conf'))
return config_files
def config_overrides(self):
super(LiveTLSLDAPIdentity, self).config_overrides()
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.ldap.Identity')
def test_tls_certfile_demand_option(self):
self.config_fixture.config(group='ldap',

View File

@ -1,3 +0,0 @@
[auth]
methods = external, password, token
external = keystone.auth.plugins.external.LegacyDefaultDomain

View File

@ -1,2 +0,0 @@
[auth]
methods = password, token

View File

@ -1,3 +0,0 @@
[auth]
methods = external, password, token
external = keystone.auth.plugins.external.Domain

View File

@ -1,3 +0,0 @@
[auth]
methods = external, password, token
external = keystone.auth.plugins.external.LegacyDomain

View File

@ -4,6 +4,3 @@ user = cn=Admin
password = password
backend_entities = ['Tenant', 'User', 'UserRoleAssociation', 'Role', 'Group', 'Domain']
suffix = cn=example,cn=com
[identity]
driver = keystone.identity.backends.ldap.Identity

View File

@ -1,6 +1,5 @@
[database]
connection = sqlite://
#For a file based sqlite use
#For a specific location file based sqlite use:
#connection = sqlite:////tmp/keystone.db
#To Test MySQL:
#connection = mysql://keystone:keystone@localhost/keystone?charset=utf8
@ -13,25 +12,3 @@ url = fake://memory
user = cn=Admin
password = password
suffix = cn=example,cn=com
[identity]
driver = keystone.identity.backends.ldap.Identity
[assignment]
driver = keystone.assignment.backends.sql.Assignment
[token]
driver = keystone.token.backends.sql.Token
[ec2]
driver = keystone.contrib.ec2.backends.sql.Ec2
[catalog]
driver = keystone.catalog.backends.sql.Catalog
[policy]
driver = keystone.policy.backends.sql.Policy
[trust]
driver = keystone.trust.backends.sql.Trust

View File

@ -12,6 +12,3 @@ user_enabled_emulation = True
user_mail_attribute = mail
use_dumb_member = True
[identity]
driver = keystone.identity.backends.ldap.Identity

View File

@ -7,29 +7,3 @@ connection = sqlite://
#To Test PostgreSQL:
#connection = postgresql://keystone:keystone@localhost/keystone?client_encoding=utf8
idle_timeout = 200
[identity]
# common identity backend is SQL, domain specific configs will
# set their backends to ldap
driver = keystone.identity.backends.sql.Identity
# The test setup will set this to True, to allow easier creation
# of initial domain data
# domain_specific_drivers_enabled = True
[assignment]
driver = keystone.assignment.backends.sql.Assignment
[token]
driver = keystone.token.backends.sql.Token
[ec2]
driver = keystone.contrib.ec2.backends.sql.Ec2
[catalog]
driver = keystone.catalog.backends.sql.Catalog
[policy]
driver = keystone.policy.backends.sql.Policy
[trust]
driver = keystone.trust.backends.sql.Trust

View File

@ -1,2 +0,0 @@
[policy]
driver = keystone.policy.backends.rules.Policy

View File

@ -1,30 +1,8 @@
[database]
connection = sqlite://
#For a file based sqlite use
#For a specific location file based sqlite use:
#connection = sqlite:////tmp/keystone.db
#To Test MySQL:
#connection = mysql://keystone:keystone@localhost/keystone?charset=utf8
#To Test PostgreSQL:
#connection = postgresql://keystone:keystone@localhost/keystone?client_encoding=utf8
idle_timeout = 200
[identity]
driver = keystone.identity.backends.sql.Identity
[token]
driver = keystone.token.backends.sql.Token
[ec2]
driver = keystone.contrib.ec2.backends.sql.Ec2
[catalog]
driver = keystone.catalog.backends.sql.Catalog
[policy]
driver = keystone.policy.backends.sql.Policy
[trust]
driver = keystone.trust.backends.sql.Trust
[revoke]
driver = keystone.contrib.revoke.backends.sql.Revoke

View File

@ -15,7 +15,3 @@ use_tls = True
tls_cacertfile = /etc/keystone/ssl/certs/cacert.pem
tls_cacertdir = /etc/keystone/ssl/certs/
tls_req_cert = demand
[identity]
driver = keystone.identity.backends.ldap.Identity

View File

@ -117,9 +117,12 @@ class dirs:
# keystone.common.sql.initialize() for testing.
def _initialize_sql_session():
# Make sure the DB is located in the correct location, in this case set
# the default value, as this should be able to be overridden in some
# test cases.
db_file = dirs.tmp('test.db')
db_options.set_defaults(
sql_connection="sqlite:///" + db_file,
sql_connection='sqlite:///%s' % db_file,
sqlite_db=db_file)
@ -350,13 +353,54 @@ class BaseTestCase(testtools.TestCase):
class TestCase(BaseTestCase):
_config_file_list = [dirs.tests('test_overrides.conf')]
_config_file_list = []
def config_files(self):
return copy.copy(self._config_file_list)
def config_overrides(self):
self.config_fixture.config(policy_file=dirs.etc('policy.json'))
self.config_fixture.config(
group='auth',
methods=['keystone.auth.plugins.external.DefaultDomain',
'keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token',
'keystone.auth.plugins.oauth1.OAuth',
'keystone.auth.plugins.saml2.Saml2'])
self.config_fixture.config(
# TODO(morganfainberg): Make Cache Testing a separate test case
# in tempest, and move it out of the base unit tests.
group='cache',
backend='dogpile.cache.memory',
enabled=True,
debug_cache_backend=True,
proxies=['keystone.tests.test_cache.CacheIsolatingProxy'])
self.config_fixture.config(
group='catalog',
driver='keystone.catalog.backends.templated.Catalog',
template_file=dirs.tests('default_catalog.templates'))
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.kvs.Identity')
self.config_fixture.config(
group='kvs',
backends=[
'keystone.tests.test_kvs.KVSBackendForcedKeyMangleFixture',
'keystone.tests.test_kvs.KVSBackendFixture'])
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='signing',
certfile='examples/pki/certs/signing_cert.pem',
keyfile='examples/pki/private/signing_key.pem',
ca_certs='examples/pki/certs/cacert.pem')
self.config_fixture.config(
group='token',
driver='keystone.token.backends.kvs.Token')
self.config_fixture.config(
group='trust',
driver='keystone.trust.backends.kvs.Trust')
def setUp(self):
super(TestCase, self).setUp()
@ -688,3 +732,31 @@ class TestCase(BaseTestCase):
standardMsg = '\n'.join(lines)
self.fail(self._formatMessage(msg, standardMsg))
class SQLDriverOverrides(object):
"""A mixin for consolidating sql-specific test overrides."""
def config_overrides(self):
super(SQLDriverOverrides, self).config_overrides()
# SQL specific driver overrides
self.config_fixture.config(
group='catalog',
driver='keystone.catalog.backends.sql.Catalog')
self.config_fixture.config(
group='ec2',
driver='keystone.contrib.ec2.backends.sql.Ec2')
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.sql.Identity')
self.config_fixture.config(
group='policy',
driver='keystone.policy.backends.sql.Policy')
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.sql.Revoke')
self.config_fixture.config(
group='token',
driver='keystone.token.backends.sql.Token')
self.config_fixture.config(
group='trust',
driver='keystone.trust.backends.sql.Trust')

View File

@ -1,2 +0,0 @@
[catalog]
driver = keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilterCatalog

View File

@ -20,7 +20,6 @@ from keystone.common.sql import migration_helpers
from keystone import contrib
from keystone.openstack.common.db.sqlalchemy import migration
from keystone.openstack.common import importutils
from keystone import tests
from keystone.tests import test_v3
@ -29,12 +28,6 @@ class TestExtensionCase(test_v3.RestfulTestCase):
EXTENSION_NAME = 'endpoint_filter'
EXTENSION_TO_ADD = 'endpoint_filter_extension'
def config_files(self):
conf_files = super(TestExtensionCase, self).config_files()
conf_files.append(tests.dirs.tests(
'test_associate_project_endpoint_extension.conf'))
return conf_files
def setup_database(self):
super(TestExtensionCase, self).setup_database()
package_name = '.'.join((contrib.__name__, self.EXTENSION_NAME))
@ -43,6 +36,13 @@ class TestExtensionCase(test_v3.RestfulTestCase):
migration.db_version_control(sql.get_engine(), abs_path)
migration.db_sync(sql.get_engine(), abs_path)
def config_overrides(self):
super(TestExtensionCase, self).config_overrides()
self.config_fixture.config(
group='catalog',
driver='keystone.contrib.endpoint_filter.backends.catalog_sql.'
'EndpointFilterCatalog')
def setUp(self):
super(TestExtensionCase, self).setUp()
self.default_request_url = (

View File

@ -967,14 +967,15 @@ class TokenExpirationTest(AuthTest):
self._maintain_token_expiration()
class AuthCatalog(AuthTest):
class AuthCatalog(tests.SQLDriverOverrides, AuthTest):
"""Tests for the catalog provided in the auth response."""
def config(self, config_files):
def config_files(self):
config_files = super(AuthCatalog, self).config_files()
# We need to use a backend that supports disabled endpoints, like the
# SQL backend.
config_files.append(tests.dirs.tests('backend_sql.conf'))
super(AuthCatalog, self).config(config_files)
return config_files
def _create_endpoints(self):
def create_endpoint(service_id, region, **kwargs):

View File

@ -54,7 +54,7 @@ class NoMethodAuthPlugin(auth.AuthMethodHandler):
pass
class TestAuthPlugin(tests.TestCase):
class TestAuthPlugin(tests.SQLDriverOverrides, tests.TestCase):
def setUp(self):
super(TestAuthPlugin, self).setUp()
self.load_backends()
@ -66,14 +66,19 @@ class TestAuthPlugin(tests.TestCase):
self.api = auth.controllers.Auth()
def config_files(self):
return [tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf'),
tests.dirs.tests('test_auth_plugin.conf')]
config_files = super(TestAuthPlugin, self).config_files()
config_files.append(tests.dirs.tests('test_auth_plugin.conf'))
return config_files
def config(self, config_files):
super(TestAuthPlugin, self).config(config_files)
db_conn = 'sqlite:///%s' % tests.dirs.tmp('test.db')
self.config_fixture.config(group='database', connection=db_conn)
def config_overrides(self):
super(TestAuthPlugin, self).config_overrides()
self.config_fixture.config(
group='auth',
methods=[
'keystone.auth.plugins.external.DefaultDomain',
'keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token',
'keystone.tests.test_auth_plugin.SimpleChallengeResponse'])
def test_unsupported_auth_method(self):
method_name = uuid.uuid4().hex
@ -124,11 +129,17 @@ class TestAuthPlugin(tests.TestCase):
auth_context)
class TestByClassNameAuthMethodRegistration(TestAuthPlugin):
class TestAuthPluginDynamicOptions(TestAuthPlugin):
def config_overrides(self):
super(TestAuthPluginDynamicOptions, self).config_overrides()
# Clear the override for the [auth] ``methods`` option so it is
# possible to load the options from the config file.
self.config_fixture.conf.clear_override('methods', group='auth')
def config_files(self):
return [tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf'),
tests.dirs.tests('test_auth_plugin_by_class_name.conf')]
config_files = super(TestAuthPluginDynamicOptions, self).config_files()
config_files.append(tests.dirs.tests('test_auth_plugin.conf'))
return config_files
class TestInvalidAuthMethodRegistration(tests.TestCase):

View File

@ -1,2 +0,0 @@
[auth]
methods = keystone.auth.plugins.external.DefaultDomain,keystone.auth.plugins.password.Password,keystone.auth.plugins.token.Token,keystone.tests.test_auth_plugin.SimpleChallengeResponse

View File

@ -52,9 +52,16 @@ class BaseLDAPIdentity(test_backend.IdentityTests):
# Only one conf structure unless we are using separate domain backends
return CONF
def _set_config(self):
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_ldap.conf')])
def config_overrides(self):
super(BaseLDAPIdentity, self).config_overrides()
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.ldap.Identity')
def config_files(self):
config_files = super(BaseLDAPIdentity, self).config_files()
config_files.append(tests.dirs.tests('backend_ldap.conf'))
return config_files
def test_build_tree(self):
"""Regression test for building the tree names
@ -511,10 +518,9 @@ class BaseLDAPIdentity(test_backend.IdentityTests):
self.skipTest("Using arbitrary attributes doesn't work under LDAP")
class LDAPIdentity(tests.TestCase, BaseLDAPIdentity):
class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):
def setUp(self):
super(LDAPIdentity, self).setUp()
self._set_config()
self.clear_database()
common_ldap.register_handler('fake://', fakeldap.FakeLdap)
@ -853,8 +859,8 @@ class LDAPIdentity(tests.TestCase, BaseLDAPIdentity):
def test_user_api_get_connection_no_user_password(self):
"""Don't bind in case the user and password are blank."""
self.config([tests.dirs.tests('test_overrides.conf')])
CONF.ldap.url = "fake://memory"
# Ensure the username/password are in-fact blank
self.config_fixture.config(group='ldap', user=None, password=None)
user_api = identity.backends.ldap.UserApi(CONF)
self.stubs.Set(fakeldap, 'FakeLdap',
self.mox.CreateMock(fakeldap.FakeLdap))
@ -1111,8 +1117,6 @@ class LDAPIdentity(tests.TestCase, BaseLDAPIdentity):
class LDAPIdentityEnabledEmulation(LDAPIdentity):
def setUp(self):
super(LDAPIdentityEnabledEmulation, self).setUp()
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_ldap.conf')])
self.clear_database()
self.load_backends()
self.load_fixtures(default_fixtures)
@ -1120,6 +1124,11 @@ class LDAPIdentityEnabledEmulation(LDAPIdentity):
self.user_two, self.user_badguy]:
obj.setdefault('enabled', True)
def config_files(self):
config_files = super(LDAPIdentityEnabledEmulation, self).config_files()
config_files.append(tests.dirs.tests('backend_ldap.conf'))
return config_files
def config_overrides(self):
super(LDAPIdentityEnabledEmulation, self).config_overrides()
self.config_fixture.config(group='ldap',
@ -1185,15 +1194,16 @@ class LDAPIdentityEnabledEmulation(LDAPIdentity):
"Enabled emulation conflicts with enabled mask")
class LdapIdentitySqlAssignment(tests.TestCase, BaseLDAPIdentity):
class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,
tests.TestCase):
def _set_config(self):
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_ldap_sql.conf')])
def config_files(self):
config_files = super(LdapIdentitySqlAssignment, self).config_files()
config_files.append(tests.dirs.tests('backend_ldap_sql.conf'))
return config_files
def setUp(self):
super(LdapIdentitySqlAssignment, self).setUp()
self._set_config()
self.clear_database()
self.load_backends()
cache.configure_cache_region(cache.REGION)
@ -1207,6 +1217,15 @@ class LdapIdentitySqlAssignment(tests.TestCase, BaseLDAPIdentity):
#defaulted by the data load
self.user_foo['enabled'] = True
def config_overrides(self):
super(LdapIdentitySqlAssignment, self).config_overrides()
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.ldap.Identity')
self.config_fixture.config(
group='assignment',
driver='keystone.assignment.backends.sql.Assignment')
def test_domain_crud(self):
pass
@ -1248,7 +1267,8 @@ class LdapIdentitySqlAssignment(tests.TestCase, BaseLDAPIdentity):
self.skipTest('Blocked by bug 1221805')
class MultiLDAPandSQLIdentity(tests.TestCase, BaseLDAPIdentity):
class MultiLDAPandSQLIdentity(BaseLDAPIdentity, tests.SQLDriverOverrides,
tests.TestCase):
"""Class to test common SQL plus individual LDAP backends.
We define a set of domains and domain-specific backends:
@ -1269,7 +1289,6 @@ class MultiLDAPandSQLIdentity(tests.TestCase, BaseLDAPIdentity):
def setUp(self):
super(MultiLDAPandSQLIdentity, self).setUp()
self._set_config()
self.load_backends()
self.engine = sql.get_engine()
@ -1291,9 +1310,16 @@ class MultiLDAPandSQLIdentity(tests.TestCase, BaseLDAPIdentity):
self.clear_database()
self.load_fixtures(default_fixtures)
def _set_config(self):
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_multi_ldap_sql.conf')])
def config_overrides(self):
super(MultiLDAPandSQLIdentity, self).config_overrides()
# Make sure identity and assignment are actually SQL drivers,
# BaseLDAPIdentity sets these options to use LDAP.
self.config_fixture.config(
group='identity',
driver='keystone.identity.backends.sql.Identity')
self.config_fixture.config(
group='assignment',
driver='keystone.assignment.backends.sql.Assignment')
def _setup_domain_test_data(self):
@ -1321,21 +1347,15 @@ class MultiLDAPandSQLIdentity(tests.TestCase, BaseLDAPIdentity):
# test overrides are included.
self.identity_api.domain_configs._load_config(
self.identity_api.assignment_api,
[tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_multi_ldap_sql.conf'),
tests.dirs.tests('keystone.Default.conf')],
[tests.dirs.tests('keystone.Default.conf')],
'Default')
self.identity_api.domain_configs._load_config(
self.identity_api.assignment_api,
[tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_multi_ldap_sql.conf'),
tests.dirs.tests('keystone.domain1.conf')],
[tests.dirs.tests('keystone.domain1.conf')],
'domain1')
self.identity_api.domain_configs._load_config(
self.identity_api.assignment_api,
[tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_multi_ldap_sql.conf'),
tests.dirs.tests('keystone.domain2.conf')],
[tests.dirs.tests('keystone.domain2.conf')],
'domain2')
def reload_backends(self, domain_id):

View File

@ -21,11 +21,14 @@ from keystone.tests import test_backend
class RulesPolicy(tests.TestCase, test_backend.PolicyTests):
def setUp(self):
super(RulesPolicy, self).setUp()
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_rules.conf')])
self.load_backends()
def config_overrides(self):
super(RulesPolicy, self).config_overrides()
self.config_fixture.config(
group='policy',
driver='keystone.policy.backends.rules.Policy')
def test_create(self):
self.assertRaises(exception.NotImplemented,
super(RulesPolicy, self).test_create)

View File

@ -34,13 +34,10 @@ CONF = config.CONF
DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id
class SqlTests(tests.TestCase):
class SqlTests(tests.SQLDriverOverrides, tests.TestCase):
def setUp(self):
super(SqlTests, self).setUp()
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf')])
self.load_backends()
# populate the engine with tables & fixtures
@ -48,6 +45,11 @@ class SqlTests(tests.TestCase):
#defaulted by the data load
self.user_foo['enabled'] = True
def config_files(self):
config_files = super(SqlTests, self).config_files()
config_files.append(tests.dirs.tests('backend_sql.conf'))
return config_files
class SqlModels(SqlTests):
def setUp(self):

View File

@ -53,10 +53,10 @@ class ConfigTestCase(tests.TestCase):
class DeprecatedTestCase(tests.TestCase):
"""Test using the original (deprecated) name for renamed options."""
def setUp(self):
super(DeprecatedTestCase, self).setUp()
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('deprecated.conf'), ])
def config_files(self):
config_files = super(DeprecatedTestCase, self).config_files()
config_files.append(tests.dirs.tests('deprecated.conf'))
return config_files
def test_sql(self):
# Options in [sql] were moved to [database] in Icehouse for the change
@ -69,10 +69,10 @@ class DeprecatedTestCase(tests.TestCase):
class DeprecatedOverrideTestCase(tests.TestCase):
"""Test using the deprecated AND new name for renamed options."""
def setUp(self):
super(DeprecatedOverrideTestCase, self).setUp()
self.config([tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('deprecated_override.conf'), ])
def config_files(self):
config_files = super(DeprecatedOverrideTestCase, self).config_files()
config_files.append(tests.dirs.tests('deprecated_override.conf'))
return config_files
def test_sql(self):
# Options in [sql] were moved to [database] in Icehouse for the change

View File

@ -18,7 +18,6 @@ import six
from keystone.common import extension
from keystone import config
from keystone import tests
from keystone.tests import rest
@ -1313,10 +1312,15 @@ class JsonTestCase(RestfulTestCase, CoreApiTests, LegacyV2UsernameTests):
class RevokeApiJsonTestCase(JsonTestCase):
def config_files(self):
cfg_list = self._config_file_list[:]
cfg_list.append(tests.dirs.tests('test_revoke_kvs.conf'))
return cfg_list
def config_overrides(self):
super(RevokeApiJsonTestCase, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
def test_fetch_revocation_list_admin_200(self):
self.skipTest('Revoke API disables revocation_list.')

View File

@ -26,10 +26,10 @@ CONF = config.CONF
class KcMasterSqlTestCase(test_keystoneclient.KcMasterTestCase):
def config(self, config_files):
super(KcMasterSqlTestCase, self).config([
tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf')])
def config_files(self):
config_files = super(KcMasterSqlTestCase, self).config_files()
config_files.append(tests.dirs.tests('backend_sql.conf'))
return config_files
def setUp(self):
super(KcMasterSqlTestCase, self).setUp()

View File

@ -1,37 +0,0 @@
[DEFAULT]
crypt_strength = 1000
[identity]
driver = keystone.identity.backends.kvs.Identity
[catalog]
driver = keystone.catalog.backends.templated.Catalog
template_file = default_catalog.templates
[trust]
driver = keystone.trust.backends.kvs.Trust
[token]
driver = keystone.token.backends.kvs.Token
[cache]
backend = dogpile.cache.memory
enabled = True
debug_cache_backend = True
proxies = keystone.tests.test_cache.CacheIsolatingProxy
[signing]
certfile = examples/pki/certs/signing_cert.pem
keyfile = examples/pki/private/signing_key.pem
ca_certs = examples/pki/certs/cacert.pem
[kvs]
backends = keystone.tests.test_kvs.KVSBackendForcedKeyMangleFixture, keystone.tests.test_kvs.KVSBackendFixture
[auth]
methods = external,password,token,oauth1,saml2
oauth1 = keystone.auth.plugins.oauth1.OAuth
saml2 = keystone.auth.plugins.saml2.Saml2
[revoke]
driver=keystone.contrib.revoke.backends.kvs.Revoke

View File

@ -1,2 +0,0 @@
[token]
provider = keystone.token.providers.pki.Provider

View File

@ -172,15 +172,30 @@ class RevokeTests(object):
class SqlRevokeTests(test_backend_sql.SqlTests, RevokeTests):
def setUp(self):
super(SqlRevokeTests, self).setUp()
self.config([tests.dirs.tests('test_revoke_sql.conf')])
def config_overrides(self):
super(SqlRevokeTests, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.sql.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
class KvsRevokeTests(tests.TestCase, RevokeTests):
def config_overrides(self):
super(KvsRevokeTests, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
def setUp(self):
super(KvsRevokeTests, self).setUp()
self.config([tests.dirs.tests('test_revoke_kvs.conf')])
self.load_backends()

View File

@ -1,6 +0,0 @@
[token]
provider = keystone.token.providers.pki.Provider
revoke_by_id = False
[revoke]
driver = keystone.contrib.revoke.backends.kvs.Revoke

View File

@ -1,6 +0,0 @@
[token]
provider = keystone.token.providers.pki.Provider
revoke_by_id = False
[revoke]
driver = keystone.contrib.revoke.backends.sql.Revoke

View File

@ -56,17 +56,15 @@ CONF = config.CONF
DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id
class SqlMigrateBase(tests.TestCase):
class SqlMigrateBase(tests.SQLDriverOverrides, tests.TestCase):
def initialize_sql(self):
self.metadata = sqlalchemy.MetaData()
self.metadata.bind = self.engine
_config_file_list = [tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf')]
#override this to specify the complete list of configuration files
def config_files(self):
return self._config_file_list
config_files = super(SqlMigrateBase, self).config_files()
config_files.append(tests.dirs.tests('backend_sql.conf'))
return config_files
def repo_package(self):
return sql

View File

@ -1,2 +0,0 @@
[token]
provider = keystone.token.providers.uuid.Provider

View File

@ -12,7 +12,6 @@
# License for the specific language governing permissions and limitations
# under the License.
import copy
import datetime
import uuid
@ -37,15 +36,11 @@ DEFAULT_DOMAIN_ID = 'default'
TIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
class RestfulTestCase(rest.RestfulTestCase):
_config_file_list = [tests.dirs.tests('test_overrides.conf'),
tests.dirs.tests('backend_sql.conf')]
#Subclasses can override this to specify the complete list of configuration
#files. The base version makes a copy of the original values, otherwise
#additional tests end up appending to them and corrupting other tests.
class RestfulTestCase(tests.SQLDriverOverrides, rest.RestfulTestCase):
def config_files(self):
return copy.copy(self._config_file_list)
config_files = super(RestfulTestCase, self).config_files()
config_files.append(tests.dirs.tests('backend_sql.conf'))
return config_files
def setup_database(self):
tests.setup_database()
@ -88,11 +83,6 @@ class RestfulTestCase(rest.RestfulTestCase):
self.addCleanup(self.teardown_database)
def config(self, config_files):
super(RestfulTestCase, self).config(config_files)
db_conn = 'sqlite:///%s' % tests.dirs.tmp('test.db')
self.config_fixture.config(group='database', connection=db_conn)
def load_backends(self):
self.setup_database()

View File

@ -381,10 +381,11 @@ class TokenAPITests(object):
class TestPKITokenAPIs(test_v3.RestfulTestCase, TokenAPITests):
def config_files(self):
conf_files = super(TestPKITokenAPIs, self).config_files()
conf_files.append(tests.dirs.tests('test_pki_token_provider.conf'))
return conf_files
def config_overrides(self):
super(TestPKITokenAPIs, self).config_overrides()
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider')
def setUp(self):
super(TestPKITokenAPIs, self).setUp()
@ -392,10 +393,11 @@ class TestPKITokenAPIs(test_v3.RestfulTestCase, TokenAPITests):
class TestUUIDTokenAPIs(test_v3.RestfulTestCase, TokenAPITests):
def config_files(self):
conf_files = super(TestUUIDTokenAPIs, self).config_files()
conf_files.append(tests.dirs.tests('test_uuid_token_provider.conf'))
return conf_files
def config_overrides(self):
super(TestUUIDTokenAPIs, self).config_overrides()
self.config_fixture.config(
group='token',
provider='keystone.token.providers.uuid.Provider')
def setUp(self):
super(TestUUIDTokenAPIs, self).setUp()
@ -570,11 +572,15 @@ class TestTokenRevokeSelfAndAdmin(test_v3.RestfulTestCase):
class TestTokenRevokeById(test_v3.RestfulTestCase):
"""Test token revocation on the v3 Identity API."""
def config_files(self):
conf_files = super(TestTokenRevokeById, self).config_files()
conf_files.append(tests.dirs.tests(
'test_revoke_kvs.conf'))
return conf_files
def config_overrides(self):
super(TestTokenRevokeById, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
def setUp(self):
"""Setup for Token Revoking Test Cases.
@ -1187,11 +1193,15 @@ class TestTokenRevokeApi(TestTokenRevokeById):
EXTENSION_TO_ADD = 'revoke_extension'
"""Test token revocation on the v3 Identity API."""
def config_files(self):
conf_files = super(TestTokenRevokeApi, self).config_files()
conf_files.append(tests.dirs.tests(
'test_revoke_kvs.conf'))
return conf_files
def config_overrides(self):
super(TestTokenRevokeApi, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
def assertValidDeletedProjectResponse(self, events_response, project_id):
events = events_response['events']
@ -1372,10 +1382,12 @@ class TestTokenRevokeApi(TestTokenRevokeById):
class TestAuthExternalDisabled(test_v3.RestfulTestCase):
def config_files(self):
cfg_list = self._config_file_list[:]
cfg_list.append(tests.dirs.tests('auth_plugin_external_disabled.conf'))
return cfg_list
def config_overrides(self):
super(TestAuthExternalDisabled, self).config_overrides()
self.config_fixture.config(
group='auth',
methods=['keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token'])
def test_remote_user_disabled(self):
api = auth.controllers.Auth()
@ -1392,11 +1404,13 @@ class TestAuthExternalDisabled(test_v3.RestfulTestCase):
class TestAuthExternalLegacyDefaultDomain(test_v3.RestfulTestCase):
content_type = 'json'
def config_files(self):
cfg_list = self._config_file_list[:]
cfg_list.append(
tests.dirs.tests('auth_plugin_external_default_legacy.conf'))
return cfg_list
def config_overrides(self):
super(TestAuthExternalLegacyDefaultDomain, self).config_overrides()
self.config_fixture.config(
group='auth',
methods=['keystone.auth.plugins.external.LegacyDefaultDomain',
'keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token'])
def test_remote_user_no_realm(self):
CONF.auth.methods = 'external'
@ -1421,11 +1435,13 @@ class TestAuthExternalLegacyDefaultDomain(test_v3.RestfulTestCase):
class TestAuthExternalLegacyDomain(test_v3.RestfulTestCase):
content_type = 'json'
def config_files(self):
cfg_list = self._config_file_list[:]
cfg_list.append(
tests.dirs.tests('auth_plugin_external_domain_legacy.conf'))
return cfg_list
def config_overrides(self):
super(TestAuthExternalLegacyDomain, self).config_overrides()
self.config_fixture.config(
group='auth',
methods=['keystone.auth.plugins.external.LegacyDomain',
'keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token'])
def test_remote_user_with_realm(self):
api = auth.controllers.Auth()
@ -1472,10 +1488,13 @@ class TestAuthExternalLegacyDomain(test_v3.RestfulTestCase):
class TestAuthExternalDomain(test_v3.RestfulTestCase):
content_type = 'json'
def config_files(self):
cfg_list = self._config_file_list[:]
cfg_list.append(tests.dirs.tests('auth_plugin_external_domain.conf'))
return cfg_list
def config_overrides(self):
super(TestAuthExternalDomain, self).config_overrides()
self.config_fixture.config(
group='auth',
methods=['keystone.auth.plugins.external.Domain',
'keystone.auth.plugins.password.Password',
'keystone.auth.plugins.token.Token'])
def test_remote_user_with_realm(self):
api = auth.controllers.Auth()
@ -2263,11 +2282,16 @@ class TestTrustAuth(TestAuthInfo):
EXTENSION_NAME = 'revoke'
EXTENSION_TO_ADD = 'revoke_extension'
def config_files(self):
conf_files = super(TestTrustAuth, self).config_files()
conf_files.append(tests.dirs.tests(
'test_revoke_kvs.conf'))
return conf_files
def config_overrides(self):
super(TestTrustAuth, self).config_overrides()
self.config_fixture.config(
group='revoke',
driver='keystone.contrib.revoke.backends.kvs.Revoke')
self.config_fixture.config(
group='token',
provider='keystone.token.providers.pki.Provider',
revoke_by_id=False)
self.config_fixture.config(group='trust', enabled=True)
def setUp(self):
super(TestTrustAuth, self).setUp()
@ -2278,10 +2302,6 @@ class TestTrustAuth(TestAuthInfo):
self.trustee_user['id'] = self.trustee_user_id
self.identity_api.create_user(self.trustee_user_id, self.trustee_user)
def config_overrides(self):
super(TestTrustAuth, self).config_overrides()
self.config_fixture.config(group='trust', enabled=True)
def test_create_trust_400(self):
# The server returns a 403 Forbidden rather than a 400, see bug 1133435
self.post('/OS-TRUST/trusts', body={'trust': {}}, expected_status=403)