diff options
Diffstat (limited to 'oslo_middleware')
-rw-r--r-- | oslo_middleware/tests/test_entry_points.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/oslo_middleware/tests/test_entry_points.py b/oslo_middleware/tests/test_entry_points.py new file mode 100644 index 0000000..b39678b --- /dev/null +++ b/oslo_middleware/tests/test_entry_points.py @@ -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) |