@@ -101,11 +101,52 @@ def test4(request): # $ requestHandler
101101 g = HTTPPermanentRedirect (location = "redirect" ) # $HttpResponse mimetype=text/html HttpRedirectResponse redirectLocation="redirect"
102102 raise a
103103
104+ # Unsupported cases
105+ class Test5 :
106+ def __init__ (self , request ): # $ MISSING: requestHandler
107+ ensure_tainted (request ) # $ MISSING: tainted
108+ self .req = request
109+
110+ @view_config (route_name = "test5" , renderer = "string" ) # $ routeSetup
111+ def test5 (self ): # $ requestHandler
112+ ensure_not_tainted (self ) # $ SPURIOUS: tainted
113+ ensure_tainted (self .req ) # $ MISSING: tainted
114+ return "Ok" # $ HttpResponse mimetype=text/html responseBody="Ok"
115+
116+ @view_config (route_name = "test6" , attr = "test6method" , renderer = "string" ) # $ routeSetup
117+ class Test6 :
118+ def __init__ (self , request ): # $ MISSING: requestHandler
119+ ensure_tainted (request ) # $ MISSING: tainted
120+ self .req = request
121+
122+ def test6method (self ): # $ MISSING: requestHandler
123+ ensure_not_tainted (self )
124+ ensure_tainted (self .req ) # $ MISSING: tainted
125+ return "Ok" # $ MISSING: HttpResponse mimetype=text/html responseBody="Ok"
126+
127+ @view_config (route_name = "test6" , renderer = "string" ) # $ routeSetup
128+ class Test6 :
129+ def __init__ (self , context , request ): # $ MISSING: requestHandler
130+ ensure_tainted (request ) # $ MISSING: tainted
131+ self .req = request
132+
133+ def __call__ (self ): # $ MISSING: requestHandler
134+ ensure_not_tainted (self )
135+ ensure_tainted (self .req ) # $ MISSING: tainted
136+ return "Ok" # $ MISSING: HttpResponse mimetype=text/html responseBody="Ok"
137+
138+ class Test7 :
139+ def __call__ (self ,context ,request ): # $ MISSING: requestHandler
140+ ensure_tainted (request ) # $ MISSING: tainted
141+ return "Ok" # $ MISSING: HttpResponse mimetype=text/html responseBody="Ok"
142+
143+
104144if __name__ == "__main__" :
105145 with Configurator () as config :
106- for i in range (1 ,5 ):
146+ for i in range (1 ,8 ):
107147 config .add_route (f"test{ i } " , f"/test{ i } " )
108148 config .add_view (test2 , route_name = "test2" ) # $ routeSetup
149+ config .add_view (Test7 (), route_name = "test7" , renderer = "string" ) # $ routeSetup
109150 config .scan ()
110151 server = make_server ('127.0.0.1' , 8080 , config .make_wsgi_app ())
111152 print ("serving" )
0 commit comments