def test_clear(self): observable = Observable() observable.clear() obs1 = Observer() observable.addObserver(obs1) obs2 = Observer() observable.addObserver(obs2) observable.clear() self.assertEqual(set(observable.observers()), set())
def test_removeObserver(self): observable = Observable() self.assertFalse(observable.removeObserver(None)) self.assertFalse(observable.removeObserver("wrong")) self.assertFalse(observable.removeObserver(Observable())) obs1 = Observer() observable.addObserver(obs1) obs2 = Observer() observable.addObserver(obs2) self.assertTrue(observable.removeObserver(obs1)) self.assertFalse(observable.removeObserver(obs1)) self.assertTrue(observable.removeObserver(obs2))
def test_observers(self): observable = Observable() self.assertEqual(set(observable.observers()), set()) obs1 = Observer() observable.addObserver(obs1) self.assertEqual(set(observable.observers()), {obs1}) obs2 = Observer() observable.addObserver(obs2) self.assertEqual(set(observable.observers()), {obs1, obs2}) del obs1 self.assertEqual(set(observable.observers()), {obs2}) del obs2 self.assertEqual(set(observable.observers()), set())
def test_addObservers(self): observable = Observable() ref = weakref.ref(observable) self.assertRaises(TypeError, observable.addObserver, None) self.assertRaises(TypeError, observable.addObserver, "wrong") self.assertRaises(TypeError, observable.addObserver, Observable()) obs1 = Observer() ref1 = weakref.ref(obs1) self.assertTrue(observable.addObserver(obs1)) self.assertFalse(observable.addObserver(obs1)) obs2 = Observer() self.assertTrue(observable.addObserver(obs2)) del obs1 self.assertIsNone(ref1()) del observable self.assertIsNone(ref()) observable = Observable() ref = weakref.ref(observable) obs1 = Observer() ref1 = weakref.ref(obs1) self.assertTrue(observable.addObserver(obs1)) self.assertFalse(observable.addObserver(obs1)) obs2 = Observer() self.assertTrue(observable.addObserver(obs2)) del obs1 self.assertIsNone(ref1()) del observable self.assertIsNone(ref())