def test_get_logger(self): ema_logging._logger = None logger = ema_logging.get_logger() self.assertEqual(logger, logging.getLogger(ema_logging.LOGGER_NAME)) self.assertEqual(len(logger.handlers), 1) self.assertEqual(type(logger.handlers[0]), ema_logging.NullHandler) logger = ema_logging.get_logger() self.assertEqual(logger, logging.getLogger(ema_logging.LOGGER_NAME)) self.assertEqual(len(logger.handlers), 1) self.assertEqual(type(logger.handlers[0]), ema_logging.NullHandler)
def test_engine_logger(self, mocked_application, mocked_adapter): logger = ema_logging.get_logger() mocked_logger = mock.Mock(spec=logger) mocked_logger.handlers = [] mocked_logger.manager = mock.Mock(spec=logging.Manager) mocked_logger.manager.disable = 0 ema_logging._logger = mocked_logger mocked_application.instance.return_value = mocked_application mocked_application.log = mocked_logger # no handlers ema.set_engine_logger() logger = ema_logging._logger # self.assertTrue(type(logger) == type(mocked_adapter)) mocked_logger.setLevel.assert_called_once_with(ema_logging.DEBUG) mocked_adapter.assert_called_with(mocked_logger, ema.SUBTOPIC) # with handlers mocked_logger = mock.create_autospec(logging.Logger) mock_engine_handler = mock.create_autospec(IPython.kernel.zmq.log.EnginePUBHandler)# @UndefinedVariable mocked_logger.handlers = [mock_engine_handler] mocked_application.instance.return_value = mocked_application mocked_application.log = mocked_logger ema.set_engine_logger() logger = ema_logging._logger # self.assertTrue(type(logger) == ema.EngingeLoggerAdapter) mocked_logger.setLevel.assert_called_once_with(ema_logging.DEBUG) mocked_adapter.assert_called_with(mocked_logger, ema.SUBTOPIC) mock_engine_handler.setLevel.assert_called_once_with(ema_logging.DEBUG)
def setUpClass(cls): logger = ema_logging.get_logger() mocked_logger = mock.Mock(spec=logger) mocked_logger.handlers = [] ema_logging._logger = mocked_logger cls.client = parallel.Client(profile='default') cls.url = 'tcp://{}:20202'.format(localhost()) cls.watcher = ema.start_logwatcher(cls.url)
def __init__(self, url): super(LogWatcher, self).__init__() self.context = zmq.Context() self.loop = zmq.eventloop.ioloop.IOLoop() # @UndefinedVariable self.url = url s = self.context.socket(zmq.SUB) # @UndefinedVariable s.bind(self.url) # setup up the aggregate EMA logger self.logger = ema_logging.get_logger() # add check to avoid double stream handlers if not any([isinstance(h, logging.StreamHandler) for h in self.logger.handlers]): handler = logging.StreamHandler() formatter = logging.Formatter(self.LOG_FORMAT) handler.setFormatter(formatter) self.logger.addHandler(handler) self.stream = zmq.eventloop.zmqstream.ZMQStream(s, self.loop) # @UndefinedVariable self.subscribe()