@@ -101,11 +101,52 @@ def test4(request): # $ requestHandler
101
101
g = HTTPPermanentRedirect (location = "redirect" ) # $HttpResponse mimetype=text/html HttpRedirectResponse redirectLocation="redirect"
102
102
raise a
103
103
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
+
104
144
if __name__ == "__main__" :
105
145
with Configurator () as config :
106
- for i in range (1 ,5 ):
146
+ for i in range (1 ,8 ):
107
147
config .add_route (f"test{ i } " , f"/test{ i } " )
108
148
config .add_view (test2 , route_name = "test2" ) # $ routeSetup
149
+ config .add_view (Test7 (), route_name = "test7" , renderer = "string" ) # $ routeSetup
109
150
config .scan ()
110
151
server = make_server ('127.0.0.1' , 8080 , config .make_wsgi_app ())
111
152
print ("serving" )
0 commit comments