diff --git a/keystone/test.py b/keystone/test.py index ccd43940cd..6b100d77f3 100644 --- a/keystone/test.py +++ b/keystone/test.py @@ -19,11 +19,25 @@ from keystone import wsgi ROOTDIR = os.path.dirname(os.path.dirname(__file__)) VENDOR = os.path.join(ROOTDIR, 'vendor') TESTSDIR = os.path.join(ROOTDIR, 'tests') +ETCDIR = os.path.join(ROOTDIR, 'etc') CONF = config.CONF + cd = os.chdir +def rootdir(*p): + return os.path.join(ROOTDIR, *p) + + +def etcdir(*p): + return os.path.join(ETCDIR, *p) + + +def testsdir(*p): + return os.path.join(TESTSDIR, *p) + + def checkout_vendor(repo, rev): name = repo.split('/')[-1] if name.endswith('.git'): @@ -142,15 +156,20 @@ class TestCase(unittest.TestCase): 'metadata_%s%s' % (metadata['user_id'], metadata['tenant_id']), rv) - def loadapp(self, config, name='main'): + def _paste_config(self, config): if not config.startswith('config:'): - config = 'config:%s.conf' % os.path.join(TESTSDIR, config) - return deploy.loadapp(config, name=name) + test_path = os.path.join(TESTSDIR, config) + etc_path = os.path.join(ROOTDIR, 'etc', config) + for path in [test_path, etc_path]: + if os.path.exists('%s.conf' % path): + return 'config:%s.conf' % path + return config + + def loadapp(self, config, name='main'): + return deploy.loadapp(self._paste_config(config), name=name) def appconfig(self, config): - if not config.startswith('config:'): - config = 'config:%s.conf' % os.path.join(TESTSDIR, config) - return deploy.appconfig(config) + return deploy.appconfig(self._paste_config(config)) def serveapp(self, config, name=None): app = self.loadapp(config, name=name) diff --git a/tests/default.conf b/tests/default.conf deleted file mode 100644 index c2a716beb9..0000000000 --- a/tests/default.conf +++ /dev/null @@ -1,62 +0,0 @@ -[DEFAULT] -public_port = 5000 -admin_port = 35357 -admin_token = ADMIN -compute_port = 3000 - -[sql] -connection = sqlite:///bla.db -idle_timeout = 200 -min_pool_size = 5 -max_pool_size = 10 -pool_timeout = 200 - -[identity] -driver = keystone.backends.kvs.KvsIdentity - -[catalog] -driver = keystone.backends.templated.TemplatedCatalog -template_file = default_catalog.templates - -[token] -driver = keystone.backends.kvs.KvsToken - -[policy] -driver = keystone.backends.policy.SimpleMatch - - -[filter:debug] -paste.filter_factory = keystone.wsgi:Debug.factory - -[filter:token_auth] -paste.filter_factory = keystone.middleware:TokenAuthMiddleware.factory - -[filter:admin_token_auth] -paste.filter_factory = keystone.middleware:AdminTokenAuthMiddleware.factory - -[filter:json_body] -paste.filter_factory = keystone.middleware:JsonBodyMiddleware.factory - -[filter:crud_extension] -paste.filter_factory = keystone.service:AdminCrudExtension.factory - - -[app:public_service] -paste.app_factory = keystone.service:public_app_factory - -[app:admin_service] -paste.app_factory = keystone.service:admin_app_factory - -[pipeline:public_api] -pipeline = token_auth admin_token_auth json_body debug public_service - -[pipeline:admin_api] -pipeline = token_auth admin_token_auth json_body debug crud_extension admin_service - -[composite:main] -use = egg:Paste#urlmap -/v2.0 = public_api - -[composite:admin] -use = egg:Paste#urlmap -/v2.0 = admin_api diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py index 3dac570484..24cb4a81b2 100644 --- a/tests/test_backend_sql.py +++ b/tests/test_backend_sql.py @@ -22,7 +22,9 @@ class SqlIdentity(test.TestCase, test_backend.IdentityTests): os.unlink('bla.db') except Exception: pass - CONF(config_files=['default.conf', 'backend_sql.conf']) + CONF(config_files=[test.etcdir('keystone.conf'), + test.testsdir('test_overrides.conf'), + test.testsdir('backend_sql.conf')]) sql_util.setup_test_database() self.identity_api = sql.SqlIdentity() self.load_fixtures(default_fixtures) diff --git a/tests/test_keystoneclient.py b/tests/test_keystoneclient.py index fb464153be..8073a00619 100644 --- a/tests/test_keystoneclient.py +++ b/tests/test_keystoneclient.py @@ -44,14 +44,14 @@ class KcMasterTestCase(CompatTestCase): reload(ks_client) self._config() - self.public_app = self.loadapp('default', name='main') - self.admin_app = self.loadapp('default', name='admin') + self.public_app = self.loadapp('keystone', name='main') + self.admin_app = self.loadapp('keystone', name='admin') self.load_backends() self.load_fixtures(default_fixtures) - self.public_server = self.serveapp('default', name='main') - self.admin_server = self.serveapp('default', name='admin') + self.public_server = self.serveapp('keystone', name='main') + self.admin_server = self.serveapp('keystone', name='admin') # TODO(termie): is_admin is being deprecated once the policy stuff # is all working @@ -62,7 +62,8 @@ class KcMasterTestCase(CompatTestCase): dict(roles=['keystone_admin'], is_admin='1')) def _config(self): - CONF(config_files=['default.conf']) + CONF(config_files=[test.etcdir('keystone.conf'), + test.testsdir('test_overrides.conf')]) def foo_client(self): return self._client(username='FOO', diff --git a/tests/test_keystoneclient_sql.py b/tests/test_keystoneclient_sql.py index b19aff8fb4..2adcc745d9 100644 --- a/tests/test_keystoneclient_sql.py +++ b/tests/test_keystoneclient_sql.py @@ -12,5 +12,7 @@ CONF = config.CONF class KcMasterSqlTestCase(test_keystoneclient.KcMasterTestCase): def _config(self): - CONF(config_files=['default.conf', 'backend_sql.conf']) + CONF(config_files=[test.etcdir('keystone.conf'), + test.testsdir('test_overrides.conf'), + test.testsdir('backend_sql.conf')]) sql_util.setup_test_database() diff --git a/tests/test_legacy_compat.py b/tests/test_legacy_compat.py index 765b9dab90..fef2b8a46f 100644 --- a/tests/test_legacy_compat.py +++ b/tests/test_legacy_compat.py @@ -117,11 +117,12 @@ class CompatTestCase(test.TestCase): class DiabloCompatTestCase(CompatTestCase): def setUp(self): - CONF(config_files=['default.conf']) + CONF(config_files=[test.etcdir('keystone.conf'), + test.testsdir('test_overrides.conf')]) revdir = test.checkout_vendor(KEYSTONE_REPO, 'stable/diablo') self.sampledir = os.path.join(revdir, KEYSTONE_SAMPLE_DIR) - self.app = self.loadapp('default') + self.app = self.loadapp('keystone') self.load_backends() super(DiabloCompatTestCase, self).setUp() diff --git a/tests/test_novaclient_compat.py b/tests/test_novaclient_compat.py index d762c5f1e2..8aa6e344af 100644 --- a/tests/test_novaclient_compat.py +++ b/tests/test_novaclient_compat.py @@ -32,11 +32,12 @@ class NovaClientCompatMasterTestCase(CompatTestCase): reload(ks_client) reload(base_client) - CONF(config_files=['default.conf']) - self.app = self.loadapp('default') + CONF(config_files=[test.etcdir('keystone.conf'), + test.testsdir('test_overrides.conf')]) + self.app = self.loadapp('keystone') self.load_backends() self.load_fixtures(default_fixtures) - self.server = self.serveapp('default') + self.server = self.serveapp('keystone') def test_authenticate_and_tenants(self): from novaclient.keystone import client as ks_client diff --git a/tests/test_overrides.conf b/tests/test_overrides.conf new file mode 100644 index 0000000000..fdeb6e4b2d --- /dev/null +++ b/tests/test_overrides.conf @@ -0,0 +1,2 @@ +[catalog] +template_file = default_catalog.templates