Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

root/branches/cp3-wsgi-remix/test/test_etags.py

Revision 1148 (checked in by fumanchu, 2 years ago)

test/modpy fixes and docs.

  • Property svn:eol-style set to native
Line 
1 import test
2 test.prefer_parent_path()
3
4 import cherrypy
5
6
7 def setup_server():
8     class Root:
9         def resource(self):
10             return "Oh wah ta goo Siam."
11         resource.exposed = True
12    
13     conf = {
14         '/resource': {
15             'tools.etags.on': True,
16             'tools.etags.autotags': True,
17         },
18         }
19     cherrypy.tree.mount(Root(), conf=conf)
20    
21     cherrypy.config.update({
22         'log_to_screen': False,
23         'environment': 'production',
24         'show_tracebacks': True,
25         })
26
27 import helper
28
29 class ETagTest(helper.CPWebCase):
30    
31     def testETags(self):
32         self.getPage("/resource")
33         self.assertStatus('200 OK')
34         self.assertHeader('Content-Type', 'text/html')
35         self.assertBody('Oh wah ta goo Siam.')
36         self.assertHeader('ETag')
37         for k, v in self.headers:
38             if k.lower() == 'etag':
39                 etag = v
40                 break
41        
42         # Test If-Match (both valid and invalid)
43         self.getPage("/resource", headers=[('If-Match', etag)])
44         self.assertStatus("200 OK")
45         self.getPage("/resource", headers=[('If-Match', "*")])
46         self.assertStatus("200 OK")
47         self.getPage("/resource", headers=[('If-Match', "a bogus tag")])
48         self.assertStatus("412 Precondition Failed")
49        
50         # Test If-None-Match (both valid and invalid)
51         self.getPage("/resource", headers=[('If-None-Match', etag)])
52         self.assertStatus(304)
53         self.getPage("/resource", method='POST', headers=[('If-None-Match', etag)])
54         self.assertStatus("412 Precondition Failed")
55         self.getPage("/resource", headers=[('If-None-Match', "*")])
56         self.assertStatus(304)
57         self.getPage("/resource", headers=[('If-None-Match', "a bogus tag")])
58         self.assertStatus("200 OK")
59
60 if __name__ == "__main__":
61     setup_server()
62     helper.testmain()
Note: See TracBrowser for help on using the browser.

Hosted by WebFaction

Log in as guest/cpguest to create tickets