[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