def test_unsubscribe_all(self): """ Check unsubscribe. """ observer = ObserverMixin() def one_callback(signal): pass def another_callback(signal): pass observer.subscribe('signal1', one_callback) observer.subscribe('signal2', one_callback) self.assertEqual(2, len(observer._subscribers)) observer.unsubscribe() self.assertEqual(0, len(observer._subscribers))
def test_unsubscribe_all_signal(self): """ Check unsubscribe for a specific signal. """ observer = ObserverMixin() def one_callback(signal): pass def another_callback(signal): pass observer.subscribe('signal1', one_callback) observer.subscribe('signal1', another_callback) observer.subscribe('signal2', one_callback) self.assertEqual(2, len(observer._subscribers)) observer.unsubscribe(name='signal1') self.assertEqual(2, len(observer._subscribers)) self.assertEqual(0, len(observer._subscribers['signal1'])) self.assertEqual(1, len(observer._subscribers['signal2']))
def test_unsubscribe_callback(self): """ Check unsubscribe for a specific callback. """ observer = ObserverMixin() def one_callback(signal): pass def another_callback(signal): pass observer.subscribe('signal1', one_callback) observer.subscribe('signal1', another_callback) observer.subscribe('signal2', one_callback) self.assertEqual(2, len(observer._subscribers)) observer.unsubscribe(name='signal1', callback=another_callback) self.assertEqual(2, len(observer._subscribers)) self.assertEqual(1, len(observer._subscribers['signal1'])) self.assertTrue(one_callback in observer._subscribers['signal1']) self.assertFalse(another_callback in observer._subscribers['signal1']) self.assertEqual(1, len(observer._subscribers['signal2']))