def test_components_registered(self): # Test that all components were registered # This is done through the copy method status = Status() status.server.up = False status.server.error_msg = "an error message" copy = status.copy() self.assertEqual(False, copy.server.up) self.assertEqual("an error message", copy.server.error_msg) time1 = datetime.now() time2 = datetime.now() status.controller.latest_local_scan_time = time1 status.controller.latest_remote_scan_time = time2 copy = status.copy() self.assertEqual(time1, copy.controller.latest_local_scan_time) self.assertEqual(time2, copy.controller.latest_remote_scan_time)
def test_copy_doesnt_copy_listeners(self): status = Status() listener = DummyStatusListener() listener.notify = MagicMock() status.add_listener(listener) copy = status.copy() status.server.error_msg = "a" listener.notify.assert_called_once_with() listener.notify.reset_mock() copy.server.error_msg = "b" listener.notify.assert_not_called()
def test_copy_values(self): status = Status() status.server.up = False status.server.error_msg = "Bad error" copy = status.copy() self.assertEqual(False, copy.server.up) self.assertEqual("Bad error", copy.server.error_msg) # Modifying original doesn't touch copy status.server.up = True status.server.error_msg = "No error" self.assertEqual(True, status.server.up) self.assertEqual("No error", status.server.error_msg) self.assertEqual(False, copy.server.up) self.assertEqual("Bad error", copy.server.error_msg) # Modifying copy doesn't touch original copy.server.up = False copy.server.error_msg = "Worse error" self.assertEqual(True, status.server.up) self.assertEqual("No error", status.server.error_msg) self.assertEqual(False, copy.server.up) self.assertEqual("Worse error", copy.server.error_msg)