306: Added Plugin.set_api() method; added corresponding unit tests

This commit is contained in:
Jason Gerard DeRose
2008-09-21 21:30:19 +00:00
parent 2d83614006
commit 5872221bd4
2 changed files with 22 additions and 0 deletions

View File

@@ -352,6 +352,14 @@ class Plugin(ReadOnly):
assert api is not None, 'finalize() argument cannot be None'
self.__api = api
def set_api(self, api):
"""
Set reference to `API` instance.
"""
assert self.__api is None, 'set_api() can only be called once'
assert api is not None, 'set_api() argument cannot be None'
self.__api = api
def __repr__(self):
"""
Returns a fully qualified module_name.class_name() representation that

View File

@@ -387,6 +387,20 @@ class test_Plugin(ClassChecker):
assert base.implemented_by(fail) is False
assert base.implemented_by(fail()) is False
def test_set_api(self):
"""
Tests the `plugable.Plugin.set_api` method.
"""
api = 'the api instance'
o = self.cls()
assert o.api is None
e = raises(AssertionError, o.set_api, None)
assert str(e) == 'set_api() argument cannot be None'
o.set_api(api)
assert o.api is api
e = raises(AssertionError, o.set_api, api)
assert str(e) == 'set_api() can only be called once'
def test_finalize(self):
"""
Tests the `plugable.Plugin.finalize` method.