def test_message(self, logger): """ A message logged to the given ``LogPublisher`` is converted to an Eliot log message. """ publisher = LogPublisher() observer = EliotObserver(publisher) observer.logger = logger publisher.addObserver(observer) publisher.msg(b"Hello", b"world") assertHasMessage(self, logger, TWISTED_LOG_MESSAGE, dict(error=False, message=u"Hello world"))
def redirectToLogPublisher(self): """ Redirect Eliot logs to a Twisted log publisher. @return: L{list} of L{str} - the written, formatted Twisted log messages will eventually be added to it. """ written = [] publisher = LogPublisher() publisher.addObserver(lambda m: written.append(textFromEventDict(m))) destination = _RedirectLogsForTrial(FakeSys(["trial"], b""), publisher)() self.addCleanup(removeDestination, destination) return written
def test_error(self, logger): """ An error logged to the given ``LogPublisher`` is converted to an Eliot log message. """ publisher = LogPublisher() observer = EliotObserver(publisher) observer.logger = logger publisher.addObserver(observer) # No public API for this unfortunately, so emulate error logging: publisher.msg(failure=Failure(ZeroDivisionError("onoes")), why=b"A zero division ono", isError=True) message = (u'A zero division ono\nTraceback (most recent call ' u'last):\nFailure: exceptions.ZeroDivisionError: onoes\n') assertHasMessage(self, logger, TWISTED_LOG_MESSAGE, dict(error=True, message=message))