/usr/share/pyshared/cherrypy/test/test_etags.py is in python-cherrypy 2.3.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import test
test.prefer_parent_path()
import cherrypy
from cherrypy.lib import cptools
def setup_server():
class Root:
def resource(self):
cptools.validate_etags(autotags=True)
return "Oh wah ta goo Siam."
resource.exposed = True
cherrypy.tree.mount(Root())
cherrypy.config.update({
'log_to_screen': False,
'environment': 'production',
'show_tracebacks': True,
})
import helper
class ETagTest(helper.CPWebCase):
def testETags(self):
self.getPage("/resource")
self.assertStatus('200 OK')
self.assertHeader('Content-Type', 'text/html')
self.assertBody('Oh wah ta goo Siam.')
self.assertHeader('ETag')
for k, v in self.headers:
if k.lower() == 'etag':
etag = v
break
# Test If-Match (both valid and invalid)
self.getPage("/resource", headers=[('If-Match', etag)])
self.assertStatus("200 OK")
self.getPage("/resource", headers=[('If-Match', "*")])
self.assertStatus("200 OK")
self.getPage("/resource", headers=[('If-Match', "a bogus tag")])
self.assertStatus("412 Precondition Failed")
# Test If-None-Match (both valid and invalid)
self.getPage("/resource", headers=[('If-None-Match', etag)])
self.assertStatus(304)
self.getPage("/resource", method='POST', headers=[('If-None-Match', etag)])
self.assertStatus("412 Precondition Failed")
self.getPage("/resource", headers=[('If-None-Match', "*")])
self.assertStatus(304)
self.getPage("/resource", headers=[('If-None-Match', "a bogus tag")])
self.assertStatus("200 OK")
if __name__ == "__main__":
setup_server()
helper.testmain()
|