Changeset 434
- Timestamp:
- Tue Jul 17 21:03:48 2007
- Files:
-
- subprojects/Wuming/trunk/wuming/test/test_web.py (modified) (diff)
- subprojects/Wuming/trunk/wuming/web.py (modified) (diff)
- subprojects/Wuming/trunk/wuming/auth.py (modified) (diff)
- subprojects/Wuming/trunk/wuming/interfaces.py (modified) (diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
subprojects/Wuming/trunk/wuming/test/test_web.py
r429 r434 27 27 testRoot = TestRoot() 28 28 29 30 def assertResponse(response, code, data):31 assert response.code == code32 assert response.stream == (data,)33 34 29 class BaseResourceTest(web2test.BaseCase): 35 30 -
subprojects/Wuming/trunk/wuming/web.py
r433 r434 7 7 8 8 from wuming.admin import start_modrebuilder 9 from wuming.interfaces import ITemplateResource, ITemplate, ITemplateLoader 9 from wuming.interfaces import ITemplateResource, ITemplate, ITemplateLoader, ITemplateGuessingStrategy 9 9 10 10 from zope.interface import Interface, Attribute, implements … … 34 34 35 35 36 36 37 class RequestContext(object): 37 38 pass 38 39 40 41 class DryTemplateGuessingStrategy(object): 42 """ 43 >>> from zope.interface.verify import verifyClass, verifyObject 44 >>> verifyClass(ITemplateGuessingStrategy, DryTemplateGuessingStrategy) 45 True 46 >>> verifyObject(ITemplateGuessingStrategy, DryTemplateGuessingStrategy()) 47 True 48 """ 49 implements(ITemplateGuessingStrategy) 50 51 extension = 'xhtml' 52 53 def templateName(self, resource, request): 54 """Example: 55 >>> class FooBar: 56 ... pass 57 ... 58 >>> strat = DryTemplateGuessingStrategy() 59 >>> strat.templateName(FooBar(), None) 60 'foo_bar.xhtml' 61 """ 62 n = resource.__class__.__name__ 63 return n[0].lower() + ''.join([ (c, '_%s' % c.lower())[c.isupper()] 64 for c in n[1:]]) + '.' + self.extension 65 66 67 39 68 class TemplateResource(BaseResource): 40 69 """A template resource implements ITemplateResource … … 51 80 template = None 52 81 templateLoader = None 82 templateGuessingStrategy = DryTemplateGuessingStrategy() 53 83 54 84 # XXX … … 68 98 request.context.view = self 69 99 request.root = self 100 tpl = self.template 101 if tpl is None: 102 tpl = templateGuessingStrategy.templateName(self, request) 70 103 ctx = { 'request' : request, 'view' : self, 'context' : request.context } 71 104 ctx.update(self.render_context(request)) 72 return self.templateLoader.loadTemplate( self.template).addCallback(105 return self.templateLoader.loadTemplate(tpl).addCallback( 72 105 self._render, ctx).addErrback(self._err) 73 106 … … 94 127 under the name view 95 128 """ 96 #97 #request.view = self98 #return { 'request' : request }99 129 return {} 100 130 … … 102 132 application = None 103 133 104 def getCookie(request, name):105 for cookie in request.headers.getHeader('cookie', []):106 if cookie.name == name:107 return cookie108 109 def setCookie(response, cookie):110 response.headers.setHeader('Set-Cookie', (cookie,))111 return response112 113 134 # Test 114 135 def _builtin(): -
subprojects/Wuming/trunk/wuming/auth.py
r429 r434 1 # -*- test-case-name: wuming.test.test_auth -*- 1 2 # Simple web authentication system 2 3 3 from wuming.web import getCookie, setCookie4 5 4 from zope.interface import Interface, Attribute, implements, classImplements 6 5 … … 58 57 59 58 59 def getCookie(request, name): 60 for cookie in request.headers.getHeader('cookie', []): 61 if cookie.name == name: 62 return cookie 63 64 def setCookie(response, cookie): 65 response.headers.setHeader('Set-Cookie', (cookie,)) 66 return response 67 60 68 ########################################################################## 61 69 #### Example follows: … … 136 144 __all__ = [ 'IAnonymousRequest', 'AnonymousRequest', 'BaseRequestChecker', 'AuthResource', 137 145 'INamelessVisitor', 'NamelessVisitor', 'NamelessVisitorCookieChecker', 'VisitorRealm', 138 'IIdStore', 'InMemoryIdStoreDontUse'] 146 'IIdStore', 'InMemoryIdStoreDontUse', 'getCookie', 'setCookie'] 138 146 139 147 if __name__ == '__builtin__': -
subprojects/Wuming/trunk/wuming/interfaces.py
r423 r434 25 25 templateLoader = Attribute("ITemplateLoader instance") 26 26 template = Attribute("Name of template") 27 templateGuessingStrategy = Attribute("Optional template guessing strategy") 27 28 28 29 def render_context(request): … … 30 31 """ 31 32 33 class ITemplateGuessingStrategy(Interface): 34 """TemplateResource can define a template guessing strategy to resolve 35 a possible template for the resource. 36 """ 37 def templateName(resource, request): 38 """Guess the name of the template 39 """ 40 32 41 class ITranslator(Interface): 33 42 """A translator somehow transalates a string to a different language.
