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

Changeset 1022

Show
Ignore:
Timestamp:
03/29/06 00:54:46
Author:
fumanchu
Message:

Further fixes for #498 (separation of test processes), plus fix for #495 (tutorial test failure).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/test/test.py

    r1018 r1022  
    301301        'test_response_headers_filter', 
    302302        'test_static_filter', 
    303 ##        'test_tutorials', 
     303        'test_tutorials', 
    304304        'test_virtualhost_filter', 
    305305        'test_session_filter', 
  • trunk/cherrypy/test/test_config.py

    r1017 r1022  
    7575    def testConfig(self): 
    7676        tests = [ 
    77 ##            ('*',        'luxuryyacht', 'throatwobblermangrove'), 
     77            ('*',        'luxuryyacht', 'throatwobblermangrove'), 
    7878            ('/',        'nex', 'None'), 
    7979            ('/',        'foo', 'this'), 
  • trunk/cherrypy/test/test_tutorials.py

    r899 r1022  
    88 
    99 
    10 class TutorialTest(helper.CPWebCase): 
    11      
    12     def load_tut_module(self, tutorialName): 
     10def setup_server(): 
     11     
     12    conf = cherrypy.config.configs.copy() 
     13     
     14    def load_tut_module(name): 
    1315        """Import or reload tutorial module as needed.""" 
    1416        cherrypy.config.reset() 
    15          
    16         target = "cherrypy.tutorial." + tutorialName 
     17        cherrypy.config.update(conf) 
     18         
     19        target = "cherrypy.tutorial." + name 
    1720        if target in sys.modules: 
    1821            module = reload(sys.modules[target]) 
    1922        else: 
    2023            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 
     43class TutorialTest(helper.CPWebCase): 
    2844     
    2945    def test01HelloWorld(self): 
    30         self.load_tut_module("tut01_helloworld") 
     46        self.getPage("/load_tut_module/tut01_helloworld") 
    3147        self.getPage("/") 
    3248        self.assertBody('Hello world!') 
    3349     
    3450    def test02ExposeMethods(self): 
    35         self.load_tut_module("tut02_expose_methods") 
     51        self.getPage("/load_tut_module/tut02_expose_methods") 
    3652        self.getPage("/showMessage") 
    3753        self.assertBody('Hello world!') 
    3854     
    3955    def test03GetAndPost(self): 
    40         self.load_tut_module("tut03_get_and_post") 
     56        self.getPage("/load_tut_module/tut03_get_and_post") 
    4157         
    4258        # Try different GET queries 
     
    5874     
    5975    def test04ComplexSite(self): 
    60         self.load_tut_module("tut04_complex_site") 
     76        self.getPage("/load_tut_module/tut04_complex_site") 
    6177        msg = ''' 
    6278            <p>Here are some extra useful links:</p> 
     
    7288     
    7389    def test05DerivedObjects(self): 
    74         self.load_tut_module("tut05_derived_objects") 
     90        self.getPage("/load_tut_module/tut05_derived_objects") 
    7591        msg = ''' 
    7692            <html> 
     
    92108     
    93109    def test06DefaultMethod(self): 
    94         self.load_tut_module("tut06_default_method") 
     110        self.getPage("/load_tut_module/tut06_default_method") 
    95111        self.getPage('/hendrik') 
    96112        self.assertBody('Hendrik Mans, CherryPy co-developer & crazy German ' 
    97113                         '(<a href="./">back</a>)') 
    98114    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"
    101117         
    102118        self.getPage('/') 
     
    111127     
    112128    def test08GeneratorsAndYield(self): 
    113         self.load_tut_module("tut08_generators_and_yield") 
     129        self.getPage("/load_tut_module/tut08_generators_and_yield") 
    114130        self.getPage('/') 
    115131        self.assertBody('<html><body><h2>Generators rule!</h2>' 
     
    119135     
    120136    def test09Files(self): 
    121         self.load_tut_module("tut09_files") 
     137        self.getPage("/load_tut_module/tut09_files") 
    122138         
    123139        # Test upload 
     
    148164     
    149165    def test10HTTPErrors(self): 
    150         self.load_tut_module("tut10_http_errors") 
     166        self.getPage("/load_tut_module/tut10_http_errors") 
    151167         
    152168        self.getPage("/") 
     
    157173        self.assertInBody("""<a href="/messageArg">""") 
    158174         
    159         tracebacks = cherrypy.config.get('server.show_tracebacks') 
     175        self.getPage("/traceback_setting") 
     176        setting = self.body 
    160177        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))) 
    163181         
    164182        self.getPage("/error?code=500") 
    165         self.assertStatus("500 Internal error"
     183        self.assertStatus(500
    166184        self.assertInBody("The server encountered an unexpected condition " 
    167185                          "which prevented it from fulfilling the request.") 
    168186         
    169187        self.getPage("/error?code=403") 
    170         self.assertStatus("403 Forbidden"
     188        self.assertStatus(403
    171189        self.assertInBody("<h2>You can't do that!</h2>") 
    172190         
    173191        self.getPage("/messageArg") 
    174         self.assertStatus("500 Internal error"
     192        self.assertStatus(500
    175193        self.assertInBody("If you construct an HTTPError with a 'message'") 
    176194 
    177195 
    178196if __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() 
    179206    helper.testmain() 

Hosted by WebFaction

Log in as guest/cpguest to create tickets