Changeset 1804
- Timestamp:
- 10/29/07 00:28:04
- Files:
-
- trunk/cherrypy/test/test_wsgi_ns.py (modified) (3 diffs)
- trunk/cherrypy/test/test_wsgiapps.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/test/test_wsgi_ns.py
r1430 r1804 7 7 def setup_server(): 8 8 9 class WSGIResponse(object): 10 11 def __init__(self, appresults): 12 self.appresults = appresults 13 self.iter = iter(appresults) 14 15 def __iter__(self): 16 return self 17 18 def next(self): 19 return self.iter.next() 20 21 def close(self): 22 if hasattr(self.appresults, "close"): 23 self.appresults.close() 24 25 9 26 class ChangeCase(object): 10 27 … … 14 31 15 32 def __call__(self, environ, start_response): 16 res = ''.join(self.app(environ, start_response)) 17 return [getattr(res, self.to)()] 33 res = self.app(environ, start_response) 34 class CaseResults(WSGIResponse): 35 def next(this): 36 return getattr(this.iter.next(), self.to)() 37 return CaseResults(res) 18 38 19 def replace(app, map={}): 20 def replace_app(environ, start_response): 21 for line in app(environ, start_response): 22 for k, v in map.iteritems(): 23 line = line.replace(k, v) 24 yield line 25 return replace_app 39 class Replacer(object): 40 41 def __init__(self, app, map={}): 42 self.app = app 43 self.map = map 44 45 def __call__(self, environ, start_response): 46 res = self.app(environ, start_response) 47 class ReplaceResults(WSGIResponse): 48 def next(this): 49 line = this.iter.next() 50 for k, v in self.map.iteritems(): 51 line = line.replace(k, v) 52 return line 53 return ReplaceResults(res) 26 54 27 55 class Root(object): … … 32 60 33 61 34 root_conf = {'wsgi.pipeline': [('replace', replace)],62 root_conf = {'wsgi.pipeline': [('replace', Replacer)], 35 63 'wsgi.replace.map': {'L': 'X', 'l': 'r'}, 36 64 } trunk/cherrypy/test/test_wsgiapps.py
r1763 r1804 20 20 output.append('%s: %s\n' % (k,environ[k])) 21 21 return output 22 22 23 23 def test_empty_string_app(environ, start_response): 24 24 status = '200 OK' … … 27 27 return ['Hello', '', ' ', '', 'world'] 28 28 29 def reversing_middleware(app): 30 def _app(environ, start_response): 29 30 class WSGIResponse(object): 31 32 def __init__(self, appresults): 33 self.appresults = appresults 34 self.iter = iter(appresults) 35 36 def __iter__(self): 37 return self 38 39 def next(self): 40 return self.iter.next() 41 42 def close(self): 43 if hasattr(self.appresults, "close"): 44 self.appresults.close() 45 46 47 class ReversingMiddleware(object): 48 49 def __init__(self, app): 50 self.app = app 51 52 def __call__(self, environ, start_response): 31 53 results = app(environ, start_response) 32 if not isinstance(results, basestring):33 results = "".join(results)34 results = list(results)35 results.reverse()36 return ["".join(results)]37 return _app54 class Reverser(WSGIResponse): 55 def next(this): 56 line = list(this.iter.next()) 57 line.reverse() 58 return "".join(line) 59 return Reverser(results) 38 60 39 61 class Root: … … 52 74 # be pulled from the WSGI environ each time. 53 75 app = cherrypy.Application(Root(), script_name=None) 54 cherrypy.tree.graft( reversing_middleware(app), '/hosted/app2')76 cherrypy.tree.graft(ReversingMiddleware(app), '/hosted/app2') 55 77 56 78 from cherrypy.test import helper

