From: Guido van Rossum <guido@python.org>
Date: Fri, 17 Aug 2001 11:55:58 +0000 (+0000)
Subject: Add early binding of methods to the 2nd metaclass example.
X-Git-Tag: v2.2a3~481
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e1ff69271413a61c69edb24de214895cdaa1fec;p=python

Add early binding of methods to the 2nd metaclass example.
---

diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 247a4c49b3..a26a1e28f4 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -404,7 +404,11 @@ def metaclass():
         __new__ = staticmethod(__new__)
         def __call__(self):
             it = _instance()
-            # XXX Should do more, but that doesn't work yet
+            # Early binding of methods
+            for key in self.dict:
+                if key.startswith("__"):
+                    continue
+                setattr(it, key, self.dict[key].__get__(it, self))
             return it
     class C:
         __metaclass__ = M2
@@ -414,6 +418,7 @@ def metaclass():
     verify(C.bases == ())
     verify('spam' in C.dict)
     c = C()
+    verify(c.spam() == 42)
 
 def pymods():
     if verbose: print "Testing Python subclass of module..."