summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2017-01-13 15:44:30 +0100
committerJulien Danjou <julien@danjou.info>2017-01-13 15:52:38 +0100
commit6d56b58e22b75e014c274747c036f6f1ee77e4dc (patch)
tree840a9b79d72225c5538dbec645841a31954a8991
parenteb04fc4a3e3db913475d2f7105420351a0a781a9 (diff)
downloadstevedore-6d56b58e22b75e014c274747c036f6f1ee77e4dc.tar.gz
extension: add entry_point_names method1.20.0
This allows to get the list of valid entry points names declared for a namespace, without loading them. Change-Id: If9132edc14c2772732fd4ec0dc5dc3ebc4a56b3c
-rw-r--r--stevedore/extension.py5
-rw-r--r--stevedore/tests/test_extension.py6
2 files changed, 11 insertions, 0 deletions
diff --git a/stevedore/extension.py b/stevedore/extension.py
index cdd53d2..55cb22c 100644
--- a/stevedore/extension.py
+++ b/stevedore/extension.py
@@ -13,6 +13,7 @@
"""ExtensionManager
"""
+import operator
import pkg_resources
import logging
@@ -168,6 +169,10 @@ class ExtensionManager(object):
self.ENTRY_POINT_CACHE[self.namespace] = eps
return self.ENTRY_POINT_CACHE[self.namespace]
+ def entry_points_names(self):
+ """Return the list of entry points names for this namespace."""
+ return list(map(operator.attrgetter("name"), self.list_entry_points()))
+
def _load_plugins(self, invoke_on_load, invoke_args, invoke_kwds,
verify_requirements):
extensions = []
diff --git a/stevedore/tests/test_extension.py b/stevedore/tests/test_extension.py
index a84c2df..4e91429 100644
--- a/stevedore/tests/test_extension.py
+++ b/stevedore/tests/test_extension.py
@@ -58,6 +58,12 @@ class TestCallback(utils.TestCase):
set(map(operator.attrgetter("name"), n)))
self.assertEqual(4, len(n))
+ def test_list_entry_points_names(self):
+ em = extension.ExtensionManager('stevedore.test.extension')
+ names = em.entry_points_names()
+ self.assertEqual(set(['e1', 'e2', 't1', 't2']), set(names))
+ self.assertEqual(4, len(names))
+
def test_contains_by_name(self):
em = extension.ExtensionManager('stevedore.test.extension')
self.assertEqual('t1' in em, True)