bpo-31457: Don't omit inner ``process()`` calls with nested LogAdapte… · python/cpython@ce9e625
@@ -3904,7 +3904,6 @@ def test_critical(self):
390439043905390539063906class LoggerAdapterTest(unittest.TestCase):
3907-39083907def setUp(self):
39093908super(LoggerAdapterTest, self).setUp()
39103909old_handler_list = logging._handlerList[:]
@@ -3979,27 +3978,36 @@ def test_has_handlers(self):
39793978self.assertFalse(self.adapter.hasHandlers())
3980397939813980def test_nested(self):
3981+class Adapter(logging.LoggerAdapter):
3982+prefix = 'Adapter'
3983+3984+def process(self, msg, kwargs):
3985+return f"{self.prefix} {msg}", kwargs
3986+39823987msg = 'Adapters can be nested, yo.'
3983-adapter_adapter = logging.LoggerAdapter(logger=self.adapter, extra=None)
3988+adapter = Adapter(logger=self.logger, extra=None)
3989+adapter_adapter = Adapter(logger=adapter, extra=None)
3990+adapter_adapter.prefix = 'AdapterAdapter'
3991+self.assertEqual(repr(adapter), repr(adapter_adapter))
39843992adapter_adapter.log(logging.CRITICAL, msg, self.recording)
39853993self.assertEqual(len(self.recording.records), 1)
39863994record = self.recording.records[0]
39873995self.assertEqual(record.levelno, logging.CRITICAL)
3988-self.assertEqual(record.msg, msg)
3996+self.assertEqual(record.msg, f"Adapter AdapterAdapter {msg}")
39893997self.assertEqual(record.args, (self.recording,))
39903998orig_manager = adapter_adapter.manager
3991-self.assertIs(self.adapter.manager, orig_manager)
3999+self.assertIs(adapter.manager, orig_manager)
39924000self.assertIs(self.logger.manager, orig_manager)
39934001temp_manager = object()
39944002try:
39954003adapter_adapter.manager = temp_manager
39964004self.assertIs(adapter_adapter.manager, temp_manager)
3997-self.assertIs(self.adapter.manager, temp_manager)
4005+self.assertIs(adapter.manager, temp_manager)
39984006self.assertIs(self.logger.manager, temp_manager)
39994007finally:
40004008adapter_adapter.manager = orig_manager
40014009self.assertIs(adapter_adapter.manager, orig_manager)
4002-self.assertIs(self.adapter.manager, orig_manager)
4010+self.assertIs(adapter.manager, orig_manager)
40034011self.assertIs(self.logger.manager, orig_manager)
4004401240054013