Changeset 1022
- Timestamp:
- 03/29/06 00:54:46
- Files:
-
- trunk/cherrypy/test/test.py (modified) (1 diff)
- trunk/cherrypy/test/test_config.py (modified) (1 diff)
- trunk/cherrypy/test/test_tutorials.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/test/test.py
r1018 r1022 301 301 'test_response_headers_filter', 302 302 'test_static_filter', 303 ##'test_tutorials',303 'test_tutorials', 304 304 'test_virtualhost_filter', 305 305 'test_session_filter', trunk/cherrypy/test/test_config.py
r1017 r1022 75 75 def testConfig(self): 76 76 tests = [ 77 ##('*', 'luxuryyacht', 'throatwobblermangrove'),77 ('*', 'luxuryyacht', 'throatwobblermangrove'), 78 78 ('/', 'nex', 'None'), 79 79 ('/', 'foo', 'this'), trunk/cherrypy/test/test_tutorials.py
r899 r1022 8 8 9 9 10 class TutorialTest(helper.CPWebCase): 11 12 def load_tut_module(self, tutorialName): 10 def setup_server(): 11 12 conf = cherrypy.config.configs.copy() 13 14 def load_tut_module(name): 13 15 """Import or reload tutorial module as needed.""" 14 16 cherrypy.config.reset() 15 16 target = "cherrypy.tutorial." + tutorialName 17 cherrypy.config.update(conf) 18 19 target = "cherrypy.tutorial." + name 17 20 if target in sys.modules: 18 21 module = reload(sys.modules[target]) 19 22 else: 20 23 module = __import__(target, globals(), locals(), ['']) 21 22 cherrypy.config.update({'server.socket_host': self.HOST, 23 'server.socket_port': self.PORT, 24 'server.thread_pool': 10, 25 'server.log_to_screen': False, 26 'server.environment': "production", 27 }) 24 cherrypy.root.load_tut_module = load_tut_module 25 cherrypy.root.sessfilteron = sessfilteron 26 cherrypy.root.traceback_setting = traceback_setting 27 load_tut_module.exposed = True 28 29 def sessfilteron(): 30 cherrypy.config.update({"session_filter.on": True}) 31 sessfilteron.exposed = True 32 33 def traceback_setting(): 34 return repr(cherrypy.config.get('server.show_tracebacks')) 35 traceback_setting.exposed = True 36 37 class Dummy: 38 pass 39 cherrypy.root = Dummy() 40 cherrypy.root.load_tut_module = load_tut_module 41 42 43 class TutorialTest(helper.CPWebCase): 28 44 29 45 def test01HelloWorld(self): 30 self. load_tut_module("tut01_helloworld")46 self.getPage("/load_tut_module/tut01_helloworld") 31 47 self.getPage("/") 32 48 self.assertBody('Hello world!') 33 49 34 50 def test02ExposeMethods(self): 35 self. load_tut_module("tut02_expose_methods")51 self.getPage("/load_tut_module/tut02_expose_methods") 36 52 self.getPage("/showMessage") 37 53 self.assertBody('Hello world!') 38 54 39 55 def test03GetAndPost(self): 40 self. load_tut_module("tut03_get_and_post")56 self.getPage("/load_tut_module/tut03_get_and_post") 41 57 42 58 # Try different GET queries … … 58 74 59 75 def test04ComplexSite(self): 60 self. load_tut_module("tut04_complex_site")76 self.getPage("/load_tut_module/tut04_complex_site") 61 77 msg = ''' 62 78 <p>Here are some extra useful links:</p> … … 72 88 73 89 def test05DerivedObjects(self): 74 self. load_tut_module("tut05_derived_objects")90 self.getPage("/load_tut_module/tut05_derived_objects") 75 91 msg = ''' 76 92 <html> … … 92 108 93 109 def test06DefaultMethod(self): 94 self. load_tut_module("tut06_default_method")110 self.getPage("/load_tut_module/tut06_default_method") 95 111 self.getPage('/hendrik') 96 112 self.assertBody('Hendrik Mans, CherryPy co-developer & crazy German ' 97 113 '(<a href="./">back</a>)') 98 114 def test07Sessions(self): 99 self. load_tut_module("tut07_sessions")100 cherrypy.config.update({"session_filter.on": True})115 self.getPage("/load_tut_module/tut07_sessions") 116 self.getPage("/sessfilteron") 101 117 102 118 self.getPage('/') … … 111 127 112 128 def test08GeneratorsAndYield(self): 113 self. load_tut_module("tut08_generators_and_yield")129 self.getPage("/load_tut_module/tut08_generators_and_yield") 114 130 self.getPage('/') 115 131 self.assertBody('<html><body><h2>Generators rule!</h2>' … … 119 135 120 136 def test09Files(self): 121 self. load_tut_module("tut09_files")137 self.getPage("/load_tut_module/tut09_files") 122 138 123 139 # Test upload … … 148 164 149 165 def test10HTTPErrors(self): 150 self. load_tut_module("tut10_http_errors")166 self.getPage("/load_tut_module/tut10_http_errors") 151 167 152 168 self.getPage("/") … … 157 173 self.assertInBody("""<a href="/messageArg">""") 158 174 159 tracebacks = cherrypy.config.get('server.show_tracebacks') 175 self.getPage("/traceback_setting") 176 setting = self.body 160 177 self.getPage("/toggleTracebacks") 161 self.assertEqual(cherrypy.config.get('server.show_tracebacks'), not tracebacks) 162 self.assertStatus("302 Found") 178 self.assertStatus((302, 303)) 179 self.getPage("/traceback_setting") 180 self.assertBody(str(not eval(setting))) 163 181 164 182 self.getPage("/error?code=500") 165 self.assertStatus( "500 Internal error")183 self.assertStatus(500) 166 184 self.assertInBody("The server encountered an unexpected condition " 167 185 "which prevented it from fulfilling the request.") 168 186 169 187 self.getPage("/error?code=403") 170 self.assertStatus( "403 Forbidden")188 self.assertStatus(403) 171 189 self.assertInBody("<h2>You can't do that!</h2>") 172 190 173 191 self.getPage("/messageArg") 174 self.assertStatus( "500 Internal error")192 self.assertStatus(500) 175 193 self.assertInBody("If you construct an HTTPError with a 'message'") 176 194 177 195 178 196 if __name__ == "__main__": 197 conf = {'server.socket_host': '127.0.0.1', 198 'server.socket_port': 8080, 199 'server.thread_pool': 10, 200 'server.log_to_screen': False, 201 'server.environment': "production", 202 'server.show_tracebacks': True, 203 } 204 cherrypy.config.update(conf) 205 setup_server() 179 206 helper.testmain()

