Exemple #1
0
 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())
Exemple #2
0
 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())
Exemple #3
0
 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())
Exemple #4
0
 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))