]> granicus.if.org Git - python/commitdiff
Issue #13593: updating the importlib utility decorators for __qualname__.
authorMeador Inge <meadori@gmail.com>
Thu, 15 Dec 2011 04:53:13 +0000 (22:53 -0600)
committerMeador Inge <meadori@gmail.com>
Thu, 15 Dec 2011 04:53:13 +0000 (22:53 -0600)
Lib/importlib/_bootstrap.py
Lib/importlib/test/test_util.py

index 25533fcbbc90b45a936734f18e9a81d15151e5d9..520c10a317741d4c89c38678660af396771ec22d 100644 (file)
@@ -111,7 +111,7 @@ def _write_atomic(path, data):
 
 def _wrap(new, old):
     """Simple substitute for functools.wraps."""
-    for replace in ['__module__', '__name__', '__doc__']:
+    for replace in ['__module__', '__name__', '__qualname__', '__doc__']:
         setattr(new, replace, getattr(old, replace))
     new.__dict__.update(old.__dict__)
 
index 602447f09e4844b5cd5aa7554bd1a258a4f8b69d..c7cdad14d7360cdbbea4de25dcb28cb7d7219a58 100644 (file)
@@ -59,6 +59,11 @@ class ModuleForLoaderTests(unittest.TestCase):
             self.raise_exception(name)
             self.assertIs(module, sys.modules[name])
 
+    def test_decorator_attrs(self):
+        def fxn(self, module): pass
+        wrapped = util.module_for_loader(fxn)
+        self.assertEqual(wrapped.__name__, fxn.__name__)
+        self.assertEqual(wrapped.__qualname__, fxn.__qualname__)
 
 class SetPackageTests(unittest.TestCase):
 
@@ -108,6 +113,11 @@ class SetPackageTests(unittest.TestCase):
             module.__package__ = value
             self.verify(module, value)
 
+    def test_decorator_attrs(self):
+        def fxn(module): pass
+        wrapped = util.set_package(fxn)
+        self.assertEqual(wrapped.__name__, fxn.__name__)
+        self.assertEqual(wrapped.__qualname__, fxn.__qualname__)
 
 def test_main():
     from test import support