Skip to content

Commit 4f22b91

Browse files
Add tests for cases not yet supported
1 parent ba054bd commit 4f22b91

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

python/ql/test/library-tests/frameworks/pyramid/pyramid_test.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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+
104144
if __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

Comments
 (0)