def test_on_alive(self): with mock.patch('herd.cluster.listener.logging.getLogger') as MockedObject: instance = MockedObject.return_value instance.info.return_value = None instance.exception.return_value = None listener = MessageListener() self.assertEquals(MockedObject.called, True) listener.on_alive('777.666.555.444') self.assertEquals(instance.info.called, True) self.assertEqual(instance.exception.called, False) logger = logging.getLogger('herd') logger.setLevel(logging.DEBUG) handler = MockLoggingHandler() logger.addHandler(handler) listener = MessageListener() self.assertEqual(len(logger.handlers[0].messages['info']), 1) listener.on_alive('777.666.555.444') self.assertEqual(len(logger.handlers[0].messages['info']), 2) self.assertEqual(len(logger.handlers[0].messages['debug']), 0) self.assertEqual(len(logger.handlers[0].messages['critical']), 0) self.assertEqual(len(logger.handlers[0].messages['error']), 0) self.assertEqual(len(logger.handlers[0].messages['warning']), 0) self.assertEqual(logger.handlers[0].messages['info'][1], "Listener sees on_alive() for host (777.666.555.444)") handler.close() logger.removeHandler(handler)
def test_on_change(self): json_msg = { 'blah': 'new value' } msg = json.dumps(json_msg) with mock.patch('herd.cluster.listener.logging.getLogger') as MockedObject: instance = MockedObject.return_value instance.info.return_value = None instance.exception.return_value = None listener = MessageListener() self.assertEquals(MockedObject.called, True) listener.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEquals(instance.info.called, True) self.assertEqual(instance.exception.called, False) listener2 = MessageListener(change_callback=broken_callback) listener2.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEquals(instance.info.called, True) self.assertEqual(instance.exception.called, True) listener3 = MessageListener(change_callback=1) listener3.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEquals(instance.info.called, True) self.assertEqual(instance.exception.called, True) logger = logging.getLogger('herd') logger.setLevel(logging.DEBUG) handler = MockLoggingHandler() logger.addHandler(handler) listener = MessageListener() self.assertEqual(len(logger.handlers[0].messages['info']), 1) listener.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEqual(len(logger.handlers[0].messages['info']), 2) self.assertEqual(len(logger.handlers[0].messages['debug']), 0) self.assertEqual(len(logger.handlers[0].messages['critical']), 0) self.assertEqual(len(logger.handlers[0].messages['error']), 0) self.assertEqual(len(logger.handlers[0].messages['warning']), 0) self.assertEqual(logger.handlers[0].messages['info'][1], "Listener sees on_change() for host (777.666.555.444) and name (test)") handler.reset() listener = MessageListener(change_callback=broken_callback) listener.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEqual(len(logger.handlers[0].messages['error']), 1) self.assertEqual(logger.handlers[0].messages['error'][0], "An error occured while calling the callback.") handler.reset() listener = MessageListener(change_callback=1) listener.on_change('777.666.555.444', 'test', 'old value', msg) self.assertEqual(len(logger.handlers[0].messages['error']), 1) self.assertEqual(logger.handlers[0].messages['error'][0], "The callback is not callable.") handler.close() logger.removeHandler(handler)