def test_filtering_by_level(self) -> None: messages = [] def raw_messages() -> List[str]: return list(map(lambda m: m.record["message"], messages)) logger.remove(None) logger.add(lambda m: messages.append(m), filter=DEFAULT_FILTER, level=0) set_level("CRITICAL") logger.debug("Test") assert raw_messages() == [] logger.critical("Another") assert raw_messages() == ["Another"] logger.info("Info") assert raw_messages() == ["Another"] set_level("INFO") logger.info("Info") assert raw_messages() == ["Another", "Info"] logger.trace("Trace") assert raw_messages() == ["Another", "Info"] set_level("TRACE") logger.trace("trace") logger.debug("debug") logger.error("error") assert raw_messages() == ["Another", "Info", "trace", "debug", "error"]
def test_traceback(self, messages) -> None: logger.info("Test", with_traceback=True) message = messages[0] assert message.record["message"] == "Test" assert message.record["extra"]["traceback"] message_with_traceback = message.split("\n") assert len(message_with_traceback) > 5 # arbitrary check of depth
def test_event_context_included(self, messages): with servo.events.EventContext.from_str("before:adjust").current(): logger.info("Test", connector=self) message = messages[0] assert message.record["message"] == "Test" attributed_message = message.rsplit(" | ", 1)[1].strip() assert attributed_message == "TestFormatting[before:adjust] - Test"
def test_connector_context_var(self, messages): servo.connector._current_context_var.set(self) servo.events._current_context_var.set( servo.events.EventContext.from_str("before:adjust")) logger.info("Test") message = messages[0] assert message.record["message"] == "Test" attributed_message = message.rsplit(" | ", 1)[1].strip() assert attributed_message == "TestFormatting[before:adjust] - Test"
def test_explicit_component(self, messages): logger.info("Test", component="something_cool") message = messages[0] assert message.record["message"] == "Test" attributed_message = message.rsplit(" | ", 1)[1].strip() assert attributed_message == "something_cool - Test"
def test_servo_name_default_included(self, messages): logger.info("Test") message = messages[0] assert message.record["message"] == "Test" attributed_message = message.rsplit(" | ", 1)[1].strip() assert attributed_message == "servo - Test"
def test_connector_name_included(self, messages): logger.info("Test", connector=self) message = messages[0] assert message.record["message"] == "Test" attributed_message = message.rsplit(" | ", 1)[1].strip() assert attributed_message == "TestFormatting - Test"