Implement a __contains__ override for extension manager

Change-Id: I027c576e36fc0f4e016b6aec67f585bf2c03bd7b
Closes-Bug: #1374099
This commit is contained in:
Abhishek Chanda 2014-10-08 14:55:40 -07:00 committed by Doug Hellmann
parent 4f2b64720f
commit bbafbe9dab
2 changed files with 9 additions and 0 deletions

@ -274,3 +274,8 @@ class ExtensionManager(object):
d[e.name] = e
self._extensions_by_name = d
return self._extensions_by_name[name]
def __contains__(self, name):
"""Return true if name is in list of enabled extensions.
"""
return any(extension.name == name for extension in self.extensions)

@ -36,6 +36,10 @@ class TestCallback(utils.TestCase):
e = em['t1']
self.assertEqual(e.name, 't1')
def test_contains_by_name(self):
em = extension.ExtensionManager('stevedore.test.extension')
self.assertEqual('t1' in em, True)
def test_get_by_name_missing(self):
em = extension.ExtensionManager('stevedore.test.extension')
try: