class TestSubject(unittest.TestCase): @classmethod def setUpClass(self): self.s = Subject() self.dec_obs = DecimalViewer() self.hex_obs = HexViewer() def test_a_observer_list_shall_be_empty_initially(self): self.assertEqual(len(self.s._observers), 0) def test_b_observers_shall_be_attachable(self): self.s.attach(self.dec_obs) self.assertEqual(isinstance(self.s._observers[0], DecimalViewer), True) self.assertEqual(len(self.s._observers), 1) self.s.attach(self.hex_obs) self.assertEqual(isinstance(self.s._observers[1], HexViewer), True) self.assertEqual(len(self.s._observers), 2) def test_c_observers_shall_be_detachable(self): self.s.detach(self.dec_obs) # hex viewer shall be remaining if dec viewer is detached first self.assertEqual(isinstance(self.s._observers[0], HexViewer), True) self.assertEqual(len(self.s._observers), 1) self.s.detach(self.hex_obs) self.assertEqual(len(self.s._observers), 0)
class TestSubject(unittest.TestCase): @classmethod def setUpClass(self): self.s = Subject() self.dec_obs = DecimalViewer() self.hex_obs = HexViewer() def test_a_observer_list_shall_be_empty_initially(self): self.assertEqual(len(self.s._observers), 0) def test_b_observers_shall_be_attachable(self): self.s.attach(self.dec_obs) self.assertEqual(isinstance(self.s._observers[0], DecimalViewer), True) self.assertEqual(len(self.s._observers), 1) self.s.attach(self.hex_obs) self.assertEqual(isinstance(self.s._observers[1], HexViewer), True) self.assertEqual(len(self.s._observers), 2) def test_c_observers_shall_be_detachable(self): self.s.detach(self.dec_obs) # hex viewer shall be remaining if dec viewer is detached first self.assertEqual(isinstance(self.s._observers[0], HexViewer), True) self.assertEqual(len(self.s._observers), 1) self.s.detach(self.hex_obs) self.assertEqual(len(self.s._observers), 0)
def attach(self, observer, simulation=False): self.simulations.append(simulation) Subject.attach(self, observer) print('Attached; ', self.observers)
def attach(self, observer): Subject.attach(self, observer)
def attach(self, observer) -> None: Subject.attach(self, observer)
def attach(self, observer) -> None: """ Adds an observer to the mdoel which listens to user input :param observer: The observer which should be listening """ Subject.attach(self, observer)