@@ -140,7 +140,7 @@ def poly_fetch_book(id, test_for_subclass=True):
140
140
try :
141
141
# This sink should have 2 sources, from `poly_save_base_book` and
142
142
# `poly_save_physical_book`
143
- SINK (book .title ) # $ MISSING: flow
143
+ SINK (book .title ) # $ flow="SOURCE, l:-10 -> book.title"
144
144
# The sink assertion will fail for the PolyEBook, which we handle. The title
145
145
# attribute of a PolyBook could be tainted, so we want this to be a sink in general.
146
146
except AssertionError :
@@ -153,11 +153,11 @@ def poly_fetch_book(id, test_for_subclass=True):
153
153
assert isinstance (book , PolyPhysicalBook ) or isinstance (book , PolyEBook )
154
154
155
155
if isinstance (book , PolyPhysicalBook ):
156
- SINK (book .title ) # $ MISSING: flow
156
+ SINK (book .title ) # $ MISSING: flow="SOURCE, l:+11 -> book.title" SPURIOUS: flow="SOURCE, l:-23 -> book.title"
157
157
SINK (book .physical_location ) # $ MISSING: flow
158
158
SINK (book .same_name_different_value ) # $ MISSING: flow
159
159
elif isinstance (book , PolyEBook ):
160
- SINK_F (book .title )
160
+ SINK_F (book .title ) # $ SPURIOUS: flow="SOURCE, l:-27 -> book.title"
161
161
SINK_F (book .download_link )
162
162
SINK_F (book .same_name_different_value )
163
163
@@ -173,9 +173,9 @@ def poly_save_physical_book():
173
173
def poly_fetch_physical_book (id ):
174
174
book = PolyPhysicalBook .objects .get (id = id )
175
175
176
- SINK (book .title ) # $ MISSING: flow
177
- SINK (book .physical_location ) # $ MISSING: flow
178
- SINK (book .same_name_different_value ) # $ MISSING: flow
176
+ SINK (book .title ) # $ flow="SOURCE, l:-9 -> book.title"
177
+ SINK (book .physical_location ) # $ flow="SOURCE, l:-9 -> book.physical_location"
178
+ SINK (book .same_name_different_value ) # $ flow="SOURCE, l:-9 -> book.same_name_different_value"
179
179
180
180
181
181
def poly_save_ebook ():
0 commit comments