Skip to content

Commit f6215f2

Browse files
committed
Python: Refactor field-flow test
1 parent cc4fe38 commit f6215f2

File tree

1 file changed

+33
-36
lines changed
  • python/ql/test/experimental/dataflow/fieldflow

1 file changed

+33
-36
lines changed

python/ql/test/experimental/dataflow/fieldflow/test.py

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -27,69 +27,42 @@ def SINK_F(x):
2727
print("OK")
2828

2929

30-
# Preamble
30+
# ------------------------------------------------------------------------------
31+
# Actual tests
32+
# ------------------------------------------------------------------------------
33+
3134
class 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-
4841
def 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-
10375
def 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

Comments
 (0)