[3.6] bpo-31457: Make the `LoggerAdapter.manager` property settable (… · python/cpython@537ed75

3 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -1715,7 +1715,7 @@ def manager(self):

17151715

return self.logger.manager

17161716
17171717

@manager.setter

1718-

def set_manager(self, value):

1718+

def manager(self, value):

17191719

self.logger.manager = value

17201720
17211721

def __repr__(self):

Original file line numberDiff line numberDiff line change

@@ -3959,12 +3959,25 @@ def test_nested(self):

39593959

msg = 'Adapters can be nested, yo.'

39603960

adapter_adapter = logging.LoggerAdapter(logger=self.adapter, extra=None)

39613961

adapter_adapter.log(logging.CRITICAL, msg, self.recording)

3962-
39633962

self.assertEqual(len(self.recording.records), 1)

39643963

record = self.recording.records[0]

39653964

self.assertEqual(record.levelno, logging.CRITICAL)

39663965

self.assertEqual(record.msg, msg)

39673966

self.assertEqual(record.args, (self.recording,))

3967+

orig_manager = adapter_adapter.manager

3968+

self.assertIs(self.adapter.manager, orig_manager)

3969+

self.assertIs(self.logger.manager, orig_manager)

3970+

temp_manager = object()

3971+

try:

3972+

adapter_adapter.manager = temp_manager

3973+

self.assertIs(adapter_adapter.manager, temp_manager)

3974+

self.assertIs(self.adapter.manager, temp_manager)

3975+

self.assertIs(self.logger.manager, temp_manager)

3976+

finally:

3977+

adapter_adapter.manager = orig_manager

3978+

self.assertIs(adapter_adapter.manager, orig_manager)

3979+

self.assertIs(self.adapter.manager, orig_manager)

3980+

self.assertIs(self.logger.manager, orig_manager)

39683981
39693982
39703983

class LoggerTest(BaseTest):

Original file line numberDiff line numberDiff line change

@@ -0,0 +1 @@

1+

The ``manager`` property on LoggerAdapter objects is now properly settable.