2016-10-20 | Paul Boddie | raw files shortlog changelog graph | Added some more test cases including one featuring a "broken" attribute chain. | |
tests/chain.py (file) |
1.1 --- a/tests/chain.py Wed Oct 19 23:40:41 2016 +0200 1.2 +++ b/tests/chain.py Thu Oct 20 14:20:47 2016 +0200 1.3 @@ -23,28 +23,60 @@ 1.4 def v(self): 1.5 return self.u().__len__ 1.6 1.7 -def main(): 1.8 +def static(): 1.9 c = C 1.10 d = C.D 1.11 e = C.D.E 1.12 f = C.D.E.m 1.13 g = C.D.E.n 1.14 h = C.D.p 1.15 + 1.16 +def static_via_constant(): 1.17 i = C.D.p.__len__ 1.18 + 1.19 +def assign(): 1.20 C.D.q = 987 1.21 + 1.22 +def indirect(): 1.23 + e = C.D.E 1.24 inst = e() 1.25 method = inst.m 1.26 return method("5") 1.27 1.28 -result1 = main() 1.29 +def broken(): 1.30 + inst2 = C.D.F() 1.31 + l = inst2.u().__len__ 1.32 + 1.33 +static() 1.34 +static_via_constant() 1.35 +assign() 1.36 +result1 = indirect() 1.37 +broken() 1.38 + 1.39 +# Static chains. 1.40 + 1.41 c = C 1.42 d = C.D 1.43 e = C.D.E 1.44 f = C.D.E.m 1.45 g = C.D.E.n 1.46 h = C.D.p 1.47 + 1.48 +# Static via constant. 1.49 + 1.50 i = C.D.p.__len__ 1.51 + 1.52 +# Static assignment. 1.53 + 1.54 C.D.q = 987 1.55 + 1.56 +# Indirect accesses. 1.57 + 1.58 inst = e() 1.59 method = inst.m 1.60 result2 = method("5") 1.61 + 1.62 +# Broken chains. 1.63 + 1.64 +inst2 = C.D.F() 1.65 +l = inst2.u().__len__