Define entry points for filter factories for Paste Deployment
Define filter factories so other projects can reference them by name and can take advantage of the python egg instead of referencing by the direct path. Change-Id: Id05c319c1d19261618471fa75983cf8020fc60b6 Closes-Bug: 1500509
This commit is contained in:
parent
ae44f8ce50
commit
88ad62563d
47
oslo_middleware/tests/test_entry_points.py
Normal file
47
oslo_middleware/tests/test_entry_points.py
Normal file
@ -0,0 +1,47 @@
|
||||
# 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 oslotest import base
|
||||
import stevedore
|
||||
from testtools import matchers
|
||||
|
||||
import oslo_middleware
|
||||
|
||||
|
||||
class TestPasteDeploymentEntryPoints(base.BaseTestCase):
|
||||
|
||||
def test_entry_points(self):
|
||||
factory_classes = {
|
||||
'catch_errors': 'CatchErrors',
|
||||
'correlation_id': 'CorrelationId',
|
||||
'cors': 'CORS',
|
||||
'debug': 'Debug',
|
||||
'healthcheck': 'Healthcheck',
|
||||
'http_proxy_to_wsgi': 'HTTPProxyToWSGI',
|
||||
'request_id': 'RequestId',
|
||||
'sizelimit': 'RequestBodySizeLimiter',
|
||||
'ssl': 'SSLMiddleware',
|
||||
}
|
||||
|
||||
em = stevedore.ExtensionManager('paste.filter_factory')
|
||||
|
||||
# Ensure all the factories are defined by their names
|
||||
factory_names = [extension.name for extension in em]
|
||||
self.assertThat(factory_names,
|
||||
matchers.ContainsAll(factory_classes))
|
||||
|
||||
# Ensure that we can create instances of the filter factories
|
||||
for factory_name, class_name in factory_classes.items():
|
||||
e = [m for m in em if m.name == factory_name][0]
|
||||
factory = getattr(oslo_middleware, factory_name)
|
||||
factory_class = getattr(factory, class_name).factory
|
||||
self.assertEqual(factory_class, e.plugin)
|
11
setup.cfg
11
setup.cfg
@ -38,6 +38,17 @@ oslo.middleware.healthcheck =
|
||||
disable_by_file = oslo_middleware.healthcheck.disable_by_file:DisableByFileHealthcheck
|
||||
disable_by_files_ports = oslo_middleware.healthcheck.disable_by_file:DisableByFilesPortsHealthcheck
|
||||
|
||||
paste.filter_factory =
|
||||
catch_errors = oslo_middleware:CatchErrors.factory
|
||||
correlation_id = oslo_middleware:CorrelationId.factory
|
||||
cors = oslo_middleware:CORS.factory
|
||||
debug = oslo_middleware:Debug.factory
|
||||
healthcheck = oslo_middleware:Healthcheck.factory
|
||||
http_proxy_to_wsgi = oslo_middleware:HTTPProxyToWSGI.factory
|
||||
request_id = oslo_middleware:RequestId.factory
|
||||
sizelimit = oslo_middleware:RequestBodySizeLimiter.factory
|
||||
ssl = oslo_middleware:SSLMiddleware.factory
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = doc/source
|
||||
build-dir = doc/build
|
||||
|
Loading…
x
Reference in New Issue
Block a user