diff options
author | Julien Danjou <julien@danjou.info> | 2017-01-13 15:44:30 +0100 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2017-01-13 15:52:38 +0100 |
commit | 6d56b58e22b75e014c274747c036f6f1ee77e4dc (patch) | |
tree | 840a9b79d72225c5538dbec645841a31954a8991 | |
parent | eb04fc4a3e3db913475d2f7105420351a0a781a9 (diff) | |
download | stevedore-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.py | 5 | ||||
-rw-r--r-- | stevedore/tests/test_extension.py | 6 |
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) |