Setup the default logging stream to an internal StringIO instance, so that we can examine log output as we want.
(self)
| 97 | message_num = 0 |
| 98 | |
| 99 | def setUp(self): |
| 100 | """Setup the default logging stream to an internal StringIO instance, |
| 101 | so that we can examine log output as we want.""" |
| 102 | self._threading_key = threading_helper.threading_setup() |
| 103 | |
| 104 | logger_dict = logging.getLogger().manager.loggerDict |
| 105 | with logging._lock: |
| 106 | self.saved_handlers = logging._handlers.copy() |
| 107 | self.saved_handler_list = logging._handlerList[:] |
| 108 | self.saved_loggers = saved_loggers = logger_dict.copy() |
| 109 | self.saved_name_to_level = logging._nameToLevel.copy() |
| 110 | self.saved_level_to_name = logging._levelToName.copy() |
| 111 | self.logger_states = logger_states = {} |
| 112 | for name in saved_loggers: |
| 113 | logger_states[name] = getattr(saved_loggers[name], |
| 114 | 'disabled', None) |
| 115 | |
| 116 | # Set two unused loggers |
| 117 | self.logger1 = logging.getLogger("\xab\xd7\xbb") |
| 118 | self.logger2 = logging.getLogger("\u013f\u00d6\u0047") |
| 119 | |
| 120 | self.root_logger = logging.getLogger("") |
| 121 | self.original_logging_level = self.root_logger.getEffectiveLevel() |
| 122 | |
| 123 | self.stream = io.StringIO() |
| 124 | self.root_logger.setLevel(logging.DEBUG) |
| 125 | self.root_hdlr = logging.StreamHandler(self.stream) |
| 126 | self.root_formatter = logging.Formatter(self.log_format) |
| 127 | self.root_hdlr.setFormatter(self.root_formatter) |
| 128 | if self.logger1.hasHandlers(): |
| 129 | hlist = self.logger1.handlers + self.root_logger.handlers |
| 130 | raise AssertionError('Unexpected handlers: %s' % hlist) |
| 131 | if self.logger2.hasHandlers(): |
| 132 | hlist = self.logger2.handlers + self.root_logger.handlers |
| 133 | raise AssertionError('Unexpected handlers: %s' % hlist) |
| 134 | self.root_logger.addHandler(self.root_hdlr) |
| 135 | self.assertTrue(self.logger1.hasHandlers()) |
| 136 | self.assertTrue(self.logger2.hasHandlers()) |
| 137 | |
| 138 | def tearDown(self): |
| 139 | """Remove our logging stream, and restore the original logging |
no test coverage detected