@@ -27,69 +27,42 @@ def SINK_F(x):
2727 print ("OK" )
2828
2929
30- # Preamble
30+ # ------------------------------------------------------------------------------
31+ # Actual tests
32+ # ------------------------------------------------------------------------------
33+
3134class MyObj (object ):
3235 def __init__ (self , foo ):
3336 self .foo = foo
3437
3538 def setFoo (self , foo ):
3639 self .foo = foo
3740
38-
39- class NestedObj (object ):
40- def __init__ (self ):
41- self .obj = MyObj ("OK" )
42-
43- def getObj (self ):
44- return self .obj
45-
46- # Actual tests
47-
4841def setFoo (obj , x ):
4942 SINK_F (obj .foo )
5043 obj .foo = x
5144
5245@expects (2 )
53- def test_example1 ():
46+ def test_indirect_assign ():
5447 myobj = MyObj ("OK" )
5548
5649 setFoo (myobj , SOURCE )
5750 SINK (myobj .foo ) # $ flow="SOURCE, l:-1 -> myobj.foo"
5851
5952
60- def test_example1_method ():
53+ def test_indirect_assign_method ():
6154 myobj = MyObj ("OK" )
6255
6356 myobj .setFoo (SOURCE )
6457 SINK (myobj .foo ) # $ MISSING: flow
6558
6659
67- def test_example2 ():
68- x = SOURCE
69-
70- a = NestedObj ()
71-
72- a .obj .foo = x
73-
74- SINK (a .obj .foo ) # $ flow="SOURCE, l:-6 -> a.obj.foo"
75-
76-
77- def test_example2_method ():
78- x = SOURCE
79-
80- a = NestedObj ()
81-
82- a .getObj ().foo = x
83-
84- SINK (a .obj .foo ) # $ MISSING: flow
85-
86-
87- def test_example3 ():
60+ def test_constructor_assign ():
8861 obj = MyObj (SOURCE )
8962 SINK (obj .foo ) # $ flow="SOURCE, l:-1 -> obj.foo"
9063
9164
92- def test_example3_kw ():
65+ def test_constructor_assign_kw ():
9366 obj = MyObj (foo = SOURCE )
9467 SINK (obj .foo ) # $ flow="SOURCE, l:-1 -> obj.foo"
9568
@@ -99,6 +72,30 @@ def fields_with_local_flow(x):
9972 a = obj .foo
10073 return a
10174
102-
10375def test_fields ():
10476 SINK (fields_with_local_flow (SOURCE )) # $ flow="SOURCE -> fields_with_local_flow(..)"
77+
78+ # ------------------------------------------------------------------------------
79+ # Nested Object
80+ # ------------------------------------------------------------------------------
81+
82+ class NestedObj (object ):
83+ def __init__ (self ):
84+ self .obj = MyObj ("OK" )
85+
86+ def getObj (self ):
87+ return self .obj
88+
89+
90+ def test_nested_obj ():
91+ x = SOURCE
92+ a = NestedObj ()
93+ a .obj .foo = x
94+ SINK (a .obj .foo ) # $ flow="SOURCE, l:-3 -> a.obj.foo"
95+
96+
97+ def test_nested_obj_method ():
98+ x = SOURCE
99+ a = NestedObj ()
100+ a .getObj ().foo = x
101+ SINK (a .obj .foo ) # $ MISSING: flow
0 commit comments