[Repoze-checkins] r1248 - in repoze.bfg/trunk/repoze/bfg: . sampleapp tests

Chris McDonough chrism at agendaless.com
Tue Jul 8 10:54:32 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Tue Jul  8 10:54:32 2008
New Revision: 1248

Log:
Reuse the same PageTemplateFile for all requests to the same view.


Modified:
   repoze.bfg/trunk/repoze/bfg/metaconfigure.py
   repoze.bfg/trunk/repoze/bfg/sampleapp/run.py
   repoze.bfg/trunk/repoze/bfg/template.py
   repoze.bfg/trunk/repoze/bfg/tests/test_template.py

Modified: repoze.bfg/trunk/repoze/bfg/metaconfigure.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/metaconfigure.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/metaconfigure.py	Tue Jul  8 10:54:32 2008
@@ -13,6 +13,7 @@
 from repoze.bfg.interfaces import IViewFactory
 
 from repoze.bfg.template import ViewPageTemplateFile
+from repoze.bfg.template import PageTemplateFile
 
 class ViewBase:
     def __init__(self, context, request):
@@ -40,6 +41,8 @@
         if not os.path.isfile(template):
             raise ConfigurationError("No such file", template)
 
+    template_inst = PageTemplateFile(template)
+
     def view_factory(context, request):
         if template:
             if class_ is None:
@@ -48,7 +51,7 @@
                 base = class_
             class ViewClass(base):
                 __name__ = name
-                index = ViewPageTemplateFile(template)
+                index = ViewPageTemplateFile(template_inst)
             return ViewClass(context, request)
                     
         else:

Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/run.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/run.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/run.py	Tue Jul  8 10:54:32 2008
@@ -11,5 +11,10 @@
     def get_root(environ):
         return blog
     app = make_app(get_root, sampleapp)
+##     from repoze.profile.profiler import AccumulatingProfileMiddleware
+##     profiler = AccumulatingProfileMiddleware(
+##         app,
+##         log_filename='profile.log',
+##         )
     from paste import httpserver
     httpserver.serve(app, host='0.0.0.0', port='5432')

Modified: repoze.bfg/trunk/repoze/bfg/template.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/template.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/template.py	Tue Jul  8 10:54:32 2008
@@ -14,8 +14,8 @@
         return Response(result)
 
 class ViewPageTemplateFile(property):
-    def __init__(self, filename, **kwargs):
-        self.template = PageTemplateFile(filename, **kwargs)
+    def __init__(self, template):
+        self.template = template
         property.__init__(self, self.render)
 
     def render(self, view):

Modified: repoze.bfg/trunk/repoze/bfg/tests/test_template.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/tests/test_template.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/tests/test_template.py	Tue Jul  8 10:54:32 2008
@@ -63,19 +63,18 @@
 
     def test_render(self):
         self._zcmlConfigure()
-        minimal = self._getTemplatePath('minimal.pt')
-        instance = self._makeOne(minimal)
+        f = DummyPageTemplateFile()
+        instance = self._makeOne(f)
         class View:
             context = 'context'
             request = 'request'
         view = View()
         template = instance.render(view)
-        result = template()
-        from webob import Response
-        self.failUnless(isinstance(result, Response))
-        self.assertEqual(result.app_iter, ['<div>\n</div>'])
-        self.assertEqual(result.status, '200 OK')
-        self.assertEqual(len(result.headerlist), 2)
+        args, kw = template(foo='bar')
+        self.assertEqual(kw['request'], 'request')
+        self.assertEqual(kw['options'], {'foo':'bar'})
+        self.assertEqual(kw['context'], 'context')
+        self.assertEqual(kw['view'], view)
 
 class TemplateViewTests(unittest.TestCase, Base):
     def setUp(self):
@@ -99,5 +98,6 @@
         result = view('foo')
         self.assertEqual(result, _marker)
         
-        
-        
+class DummyPageTemplateFile:
+    def render(self, *arg, **kw):
+        return arg, kw


More information about the Repoze-checkins mailing list