def setUp(self): self.internal_output = outputs.ListOutput(close_atexit=False) self.internal_messages = self.internal_output.messages _twiggy._populate_globals() _twiggy.internal_log.output = self.internal_output self.log = logger.Logger() self.emitters = self.log._emitters self.output = outputs.ListOutput(close_atexit=False) self.emitters['everything'] = filters.Emitter(levels.DEBUG, None, self.output) self.messages = self.output.messages
def test_logger(request): output = outputs.ListOutput(close_atexit=False) if issubclass(request.param, logger.InternalLogger): yield request.param(output=output) else: log = request.param() emitters = log._emitters emitters['*'] = filters.Emitter(levels.DEBUG, None, output) yield log output.close()
def test_list_output(self): o = outputs.ListOutput() o.output(m) assert len(o.messages) == 1 assert o.messages[0] is m m2 = make_mesg() m2.fields['time'] = when o.output(m2) assert o.messages[1] is m2 o.close() assert not o.messages
def test_trap_filter(self): out = outputs.ListOutput(close_atexit=False) def cleanup(output): try: del self.emitters['before'] except KeyError: pass out.close() self.addCleanup(cleanup, out) def go_boom(msg): raise RuntimeError("BOOM") self.emitters['before'] = filters.Emitter(levels.DEBUG, go_boom, out) self.log.fields().info('hi') # errors in filtering cause messages to be output anyway assert len(out.messages) == 1 m1 = out.messages.pop() assert m1.text == "hi" assert len(self.messages) == 1 m2 = self.messages.pop() assert m2.text == "hi" assert m1 is m2 assert len(self.internal_messages) == 1 m = self.internal_messages.pop() print m.text print m.traceback assert m.level == levels.INFO assert "Error filtering with emitter before" in m.text assert "<function go_boom" in m.text assert "Traceback" in m.traceback assert "BOOM" in m.traceback
def setUp(self): self.log = logger.Logger() self.emitters = self.log._emitters self.output = outputs.ListOutput(close_atexit=False) self.emitters['*'] = filters.Emitter(levels.DEBUG, None, self.output) self.messages = self.output.messages
def setUp(self): self.output = outputs.ListOutput(close_atexit=False) self.messages = self.output.messages self.log = logger.InternalLogger(output=self.output)