]> granicus.if.org Git - python/commitdiff
bpo-31457: Make the `LoggerAdapter.manager` property settable (#4042)
authorŁukasz Langa <lukasz@langa.pl>
Thu, 19 Oct 2017 00:28:51 +0000 (17:28 -0700)
committerGitHub <noreply@github.com>
Thu, 19 Oct 2017 00:28:51 +0000 (17:28 -0700)
Due to a bug in the initial fix, the setter was in fact creating a different
property.  This is now fixed.

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 b941eab97d6b0c229096b25ca31d1c6f5bf7b5a8..7544190660871d371a149a4a408af7485e28a61c 100644 (file)
@@ -1757,7 +1757,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 fb0de9de046c7efb4a7260c1e0a965f31284581a..583394cc73fad0a6666287d63c6a3031e02ff78c 100644 (file)
@@ -3982,12 +3982,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.