def test_subscribe_and_unsubscribe(self): p = Publisher() s = (1,2) p.subscribe(s) self.assertTrue(s in p.subscribers) p.unsubscribe(s) self.assertFalse(s in p.subscribers)
def test_publish(self): p = Publisher() s = BasicSubscriber() p.subscribe(s) p.subscribe(afunction) p.publish('hello') self.assertEqual(s.calledwith, 'hello') self.assertEqual(afunction_calledwith, 'hello')
def test_duplicate_subscription(self): p = Publisher() p.subscribe(None) self.assertRaises(ValueError, p.subscribe, None)