rendered paste bodyclass Reclassable(object):
pass
def test():
class A(Reclassable):
def testmethod(self):
return "A"
def testmethod2(self):
return "A"
a1 = A()
assert a1.testmethod() == "A"
a2 = A()
assert a2.testmethod() == "A"
class B(Reclassable):
def testmethod(self):
return "B"
a1.reclass(B)
assert a1.testmethod() == "B"
assert a2.testmethod() == "A"
class C(A):
def testmethod():
return "C"
c1 = C()
assert c1.testmethod() == "C"
assert c1.testmethod2() == "A"
c2 = C()
assert c2.testmethod() == "C"
assert c2.testmethod2() == "A"
c1.reclass(A)
assert c1.testmethod() == "A"
assert c1.testmethod2() == "A"
class D(A):
pass
class E(Reclassable):
def testmethod(self):
return "E"
def testmethod2(self):
return "E"
A.reclassall(E)
assert a1.testmethod() == "E"
assert a1.testmethod2() == "E"
assert a2.testmethod() == "B"
assert c1.testmethod() == "E"
assert c1.testmethod2() == "E"
assert c2.testmethod() == "C"
assert c2.testmethod2() == "E"
d = D()
assert d.testmethod() == "E"