summaryrefslogtreecommitdiff
path: root/oslo_middleware
diff options
context:
space:
mode:
authorTom Cocozzello <tjcocozz@us.ibm.com>2015-10-01 16:33:23 -0500
committerTom Cocozzello <tjcocozz@us.ibm.com>2015-11-13 08:33:28 -0600
commit88ad62563d509baa94790f43eef186d7f3534be6 (patch)
treead807b3c55196101d837dfb88bc05be0c475c954 /oslo_middleware
parentae44f8ce5085130de9315bbcd8c4d8623812d780 (diff)
downloadoslo-middleware-88ad62563d509baa94790f43eef186d7f3534be6.tar.gz
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
Diffstat (limited to 'oslo_middleware')
-rw-r--r--oslo_middleware/tests/test_entry_points.py47
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)