# HG changeset patch # User Paul Boddie # Date 1476966047 -7200 # Node ID a818b7ef8f7ba23d3dfd61d3b7ba9a689696eec1 # Parent 4ad5dbbc7cc8a499775a859c9592062e74fd191d Added some more test cases including one featuring a "broken" attribute chain. diff -r 4ad5dbbc7cc8 -r a818b7ef8f7b tests/chain.py --- a/tests/chain.py Wed Oct 19 23:40:41 2016 +0200 +++ b/tests/chain.py Thu Oct 20 14:20:47 2016 +0200 @@ -23,28 +23,60 @@ def v(self): return self.u().__len__ -def main(): +def static(): c = C d = C.D e = C.D.E f = C.D.E.m g = C.D.E.n h = C.D.p + +def static_via_constant(): i = C.D.p.__len__ + +def assign(): C.D.q = 987 + +def indirect(): + e = C.D.E inst = e() method = inst.m return method("5") -result1 = main() +def broken(): + inst2 = C.D.F() + l = inst2.u().__len__ + +static() +static_via_constant() +assign() +result1 = indirect() +broken() + +# Static chains. + c = C d = C.D e = C.D.E f = C.D.E.m g = C.D.E.n h = C.D.p + +# Static via constant. + i = C.D.p.__len__ + +# Static assignment. + C.D.q = 987 + +# Indirect accesses. + inst = e() method = inst.m result2 = method("5") + +# Broken chains. + +inst2 = C.D.F() +l = inst2.u().__len__