Adds tests for unsubscribe method

This commit is contained in:
2012-10-24 18:36:28 +02:00
parent f446f5df6f
commit 074028f757
2 changed files with 11 additions and 15 deletions

View File

@@ -95,16 +95,9 @@ class Observable():
if not isinstance(observer, Observer):
raise TypeError("Unsubscriber must be Observer")
try:
if observer in self.obs_collection:
self.obs_collection.remove(observer)
#print "%s removed from collection" % (str(observer))
else:
pass
#print "%s not in collection" % (str(observer))
except TypeError:
print "Failed to remove %s" % (str(observer))
if not(observer in self.obs_collection):
raise ValueError("Observer not subscribed")
self.obs_collection.remove(observer)
def __notify(self, mess):
"""

View File

@@ -86,14 +86,17 @@ class TestObserver(unittest.TestCase):
self.assertEquals(len(self.myObservable.obs_collection), 2)
def testUnsubscribe(self):
pass
self.myObservable.subscribe(self.myObserver1)
self.myObservable.subscribe(self.myObserver2)
self.assertEquals(len(self.myObservable.obs_collection), 2)
self.myObservable.unsubscribe(self.myObserver1)
self.assertEquals(len(self.myObservable.obs_collection), 1)
self.assertRaises(ValueError, lambda: self.myObservable.unsubscribe(self.myObserver1)) # already removed
self.assertRaises(TypeError, lambda: self.myObservable.unsubscribe("Georges"))
def testNotify(self):
pass
def testNameUnicity(self):
pass
if __name__ == '__main__':
unittest.main()