1.1 --- a/tests/attributes2.py Sun Sep 28 21:27:01 2008 +0200
1.2 +++ b/tests/attributes2.py Sun Sep 28 21:42:03 2008 +0200
1.3 @@ -3,60 +3,25 @@
1.4 def e(x): pass
1.5
1.6 class C:
1.7 - def h(self):
1.8 - self.m = self.f
1.9 - return self.m # not known
1.10 - def g(self):
1.11 - return self.f # C.f with context self
1.12 - def f(self): pass
1.13 e = e
1.14
1.15 def test(self):
1.16 self.e()
1.17 - self.f()
1.18 - self.g()
1.19 - self.h()
1.20
1.21 class D:
1.22 e = C.e
1.23 - f = C.f
1.24 - def g(self):
1.25 - return self.f # D.f with context preserved
1.26 - def h(self):
1.27 - self.m = self.f
1.28 - return self.m # not known
1.29
1.30 def test(self):
1.31 - self.e(1)
1.32 - self.f(2)
1.33 - self.g()
1.34 - self.h()
1.35 + self.e(1) # TypeError: unbound C.e needs C instance, not int
1.36
1.37 class E(C):
1.38 - def g(self):
1.39 - return self.f # C.f with context self
1.40 - def h(self):
1.41 - self.m = self.f
1.42 - return self.m # not known
1.43 -
1.44 def test(self):
1.45 self.e()
1.46 - self.f()
1.47 - self.g()
1.48 - self.h()
1.49 -
1.50 -C.f
1.51 -D.f
1.52 -E.f
1.53
1.54 c = C()
1.55 d = D()
1.56 e = E()
1.57
1.58 -x = c.f # bound C.f == c.h() == c.g()
1.59 -y = d.f # unbound C.f == d.h() == d.g()
1.60 -z = e.f # bound E.f == e.h() == e.g()
1.61 -
1.62 p = c.e # bound C.e
1.63 q = d.e # unbound C.e
1.64 r = e.e # bound E.e
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/tests/attributes3.py Sun Sep 28 21:42:03 2008 +0200
2.3 @@ -0,0 +1,41 @@
2.4 +#!/usr/bin/env python
2.5 +
2.6 +class C:
2.7 + def g(self):
2.8 + return self.f # C.f with context self
2.9 + def f(self): pass
2.10 +
2.11 + def test(self):
2.12 + self.f()
2.13 + self.g()
2.14 +
2.15 +class D:
2.16 + f = C.f
2.17 + def g(self):
2.18 + return self.f # D.f with context preserved
2.19 +
2.20 + def test(self):
2.21 + self.f(2)
2.22 + self.g()
2.23 +
2.24 +class E(C):
2.25 + def g(self):
2.26 + return self.f # C.f with context self
2.27 +
2.28 + def test(self):
2.29 + self.f()
2.30 + self.g()
2.31 +
2.32 +C.f
2.33 +D.f
2.34 +E.f
2.35 +
2.36 +c = C()
2.37 +d = D()
2.38 +e = E()
2.39 +
2.40 +x = c.f # bound C.f == c.g()
2.41 +y = d.f # unbound C.f == d.g()
2.42 +z = e.f # bound E.f == e.g()
2.43 +
2.44 +# vim: tabstop=4 expandtab shiftwidth=4
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/tests/attributes4.py Sun Sep 28 21:42:03 2008 +0200
3.3 @@ -0,0 +1,40 @@
3.4 +#!/usr/bin/env python
3.5 +
3.6 +class C:
3.7 + def h(self):
3.8 + self.m = self.f
3.9 + return self.m # not known
3.10 + def f(self): pass
3.11 +
3.12 + def test(self):
3.13 + self.f()
3.14 + self.h()
3.15 +
3.16 +class D:
3.17 + f = C.f
3.18 + def h(self):
3.19 + self.m = self.f
3.20 + return self.m # not known
3.21 +
3.22 + def test(self):
3.23 + self.f(2)
3.24 + self.h()
3.25 +
3.26 +class E(C):
3.27 + def h(self):
3.28 + self.m = self.f
3.29 + return self.m # not known
3.30 +
3.31 + def test(self):
3.32 + self.f()
3.33 + self.h()
3.34 +
3.35 +c = C()
3.36 +d = D()
3.37 +e = E()
3.38 +
3.39 +x = c.f # bound C.f == c.h()
3.40 +y = d.f # unbound C.f == d.h()
3.41 +z = e.f # bound E.f == e.h()
3.42 +
3.43 +# vim: tabstop=4 expandtab shiftwidth=4