mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-31457: Allow for nested LoggerAdapter objects (#3551)
Some of the proxied methods use internal Logger state which isn't proxied, causing failures if an adapter is applied to another adapter. This commit fixes the issue, adds a new test for the use case.
This commit is contained in:
parent
5a61559fb0
commit
1bbd482bcf
3 changed files with 33 additions and 0 deletions
|
@ -3986,6 +3986,17 @@ class LoggerAdapterTest(unittest.TestCase):
|
|||
self.assertFalse(self.logger.hasHandlers())
|
||||
self.assertFalse(self.adapter.hasHandlers())
|
||||
|
||||
def test_nested(self):
|
||||
msg = 'Adapters can be nested, yo.'
|
||||
adapter_adapter = logging.LoggerAdapter(logger=self.adapter, extra=None)
|
||||
adapter_adapter.log(logging.CRITICAL, msg, self.recording)
|
||||
|
||||
self.assertEqual(len(self.recording.records), 1)
|
||||
record = self.recording.records[0]
|
||||
self.assertEqual(record.levelno, logging.CRITICAL)
|
||||
self.assertEqual(record.msg, msg)
|
||||
self.assertEqual(record.args, (self.recording,))
|
||||
|
||||
|
||||
class LoggerTest(BaseTest):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue