]> granicus.if.org Git - python/commitdiff
classic(), methods(): add another test relating to unbound methods:
authorGuido van Rossum <guido@python.org>
Fri, 17 Aug 2001 13:40:47 +0000 (13:40 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 17 Aug 2001 13:40:47 +0000 (13:40 +0000)
when an unbound method of class A is stored as a class variable of
class B, and class B is *not* a subclass of class A, that method
should *not* get bound to B instances.

Lib/test/test_descr.py

index a26a1e28f49c45f701f3ee73513c4f6d300e2dd6..e40e003486095f262e645cc05284247c51c88a59 100644 (file)
@@ -760,6 +760,9 @@ def classic():
     verify(d.goo(1) == (D, 1))
     verify(d.foo(1) == (d, 1))
     verify(D.foo(d, 1) == (d, 1))
+    class E: # *not* subclassing from C
+        foo = C.foo
+    verify(E().foo == C.foo) # i.e., unbound
 
 def compattr():
     if verbose: print "Testing computed attributes..."
@@ -901,6 +904,9 @@ def methods():
     verify(d2.foo() == 2)
     verify(d2.boo() == 2)
     verify(d2.goo() == 1)
+    class E(object):
+        foo = C.foo
+    verify(E().foo == C.foo) # i.e., unbound
 
 def specials():
     # Test operators like __hash__ for which a built-in default exists