]> granicus.if.org Git - python/commitdiff
[3.6] bpo-31457: Make the `LoggerAdapter.manager` property settable (GH-4042) (#4043)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 19 Oct 2017 01:02:59 +0000 (18:02 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Thu, 19 Oct 2017 01:02:59 +0000 (18:02 -0700)
Due to a bug in the initial fix, the setter was in fact creating a different
property.  This is now fixed.
(cherry picked from commit 0b6a118a45ac2eded1348fea6ed300d5651f7471)

Lib/logging/__init__.py
Lib/test/test_logging.py
Misc/NEWS.d/next/Library/2017-10-18-16-48-09.bpo-31457._ovmzp.rst [new file with mode: 0644]

index 0965536797d7c6207106ad1b0b4b18cccf374e9e..d363af5a1a8e82b9e68202896b211677be9653cb 100644 (file)
@@ -1715,7 +1715,7 @@ class LoggerAdapter(object):
         return self.logger.manager
 
     @manager.setter
-    def set_manager(self, value):
+    def manager(self, value):
         self.logger.manager = value
 
     def __repr__(self):
index 25046c3c38ab3e198bcb74ca854b3a267c4b0a01..f0e2437b285999d79fbe89d04b735f58416db334 100644 (file)
@@ -3959,12 +3959,25 @@ class LoggerAdapterTest(unittest.TestCase):
         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,))
+        orig_manager = adapter_adapter.manager
+        self.assertIs(self.adapter.manager, orig_manager)
+        self.assertIs(self.logger.manager, orig_manager)
+        temp_manager = object()
+        try:
+            adapter_adapter.manager = temp_manager
+            self.assertIs(adapter_adapter.manager, temp_manager)
+            self.assertIs(self.adapter.manager, temp_manager)
+            self.assertIs(self.logger.manager, temp_manager)
+        finally:
+            adapter_adapter.manager = orig_manager
+        self.assertIs(adapter_adapter.manager, orig_manager)
+        self.assertIs(self.adapter.manager, orig_manager)
+        self.assertIs(self.logger.manager, orig_manager)
 
 
 class LoggerTest(BaseTest):
diff --git a/Misc/NEWS.d/next/Library/2017-10-18-16-48-09.bpo-31457._ovmzp.rst b/Misc/NEWS.d/next/Library/2017-10-18-16-48-09.bpo-31457._ovmzp.rst
new file mode 100644 (file)
index 0000000..1a59dce
--- /dev/null
@@ -0,0 +1 @@
+The ``manager`` property on LoggerAdapter objects is now properly settable.