diff --git a/Observer.py b/Observer.py index 51c8687..1212408 100644 --- a/Observer.py +++ b/Observer.py @@ -50,10 +50,13 @@ class Observer(): Automatically called each time Observer receives a notification. A notification updates message value """ - if not isinstance(message, str): + ut = ObsUtility() + mess = json.loads(message) + + if ut.is_json_valid(message): + self.message = message + else: raise TypeError("Expected string for message") - self.message = message - #print "%s received %s" % (self.name, message) def __str__(self): """ @@ -111,7 +114,7 @@ class Observable(): #print "sent %s to %s" % (mess, str(observer)) observer.update(mess) - def set_val(self, val=None): + def set_val(self, val): """ Shall be used for automatic polling. Sets current Observable value and notifies update to subscribers. @@ -128,7 +131,6 @@ class Observable(): class ObsUtility(): - # JSON Stuff def __init__(self): pass @@ -141,7 +143,6 @@ class ObsUtility(): """ # json is valid mess = json.loads(val) - # Cheks for the presence of tags try: #simply access all diff --git a/testObserver.py b/testObserver.py index 6182298..5c9d23c 100644 --- a/testObserver.py +++ b/testObserver.py @@ -63,7 +63,7 @@ class TestObserver(unittest.TestCase): # tests message and update self.assertEquals(self.myObserver1.message, None) - new_message = "new_message" + new_message = '{"name": "Bob","group": "","type": "","data": 42}' self.myObserver1.update(new_message) self.assertEquals(self.myObserver1.message, new_message) self.assertRaises(TypeError, lambda: self.myObserver1.update([4, 2])) @@ -109,21 +109,21 @@ class TestObserver(unittest.TestCase): self.assertRaises(ValueError, lambda: self.myObservable.unsubscribe(self.myObserver1)) # already removed self.assertRaises(TypeError, lambda: self.myObservable.unsubscribe("Georges")) - # def testNotify(self): - # self.myObservable.subscribe(self.myObserver1) - # self.myObservable.subscribe(self.myObserver2) + def testNotify(self): + self.myObservable.subscribe(self.myObserver1) + self.myObservable.subscribe(self.myObserver2) - # test = "R2D2" - # self.myObservable.set_val(test) - # self.assertEquals(self.myObserver1.message, test) - # self.assertEquals(self.myObserver2.message, test) + test = '{"name": "R2D2","group": "","type": "","data": 42}' + self.myObservable.set_val(test) + self.assertEquals(self.myObserver1.message, test) + self.assertEquals(self.myObserver2.message, test) - # self.myObservable.unsubscribe(self.myObserver1) - # test2 = "C3PO" - # self.myObservable.set_val(test2 ) - # self.assertEquals(self.myObserver1.message, test) - # self.assertEquals(self.myObserver2.message, test2) + self.myObservable.unsubscribe(self.myObserver1) + test2 = '{"name": "C3PO","group": "","type": "","data": 42}' + self.myObservable.set_val(test2 ) + self.assertEquals(self.myObserver1.message, test) + self.assertEquals(self.myObserver2.message, test2) if __name__ == '__main__':