From a9fed7675d8da572dee840676714b2653e3f7f79 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 16 Sep 2009 04:56:49 +0000 Subject: Checkpoint. Not 100% test coverage. --- repoze/bfg/tests/test_zcml.py | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) (limited to 'repoze/bfg/tests/test_zcml.py') diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 208e8e754..21d55504d 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -320,8 +320,7 @@ class TestViewDirective(unittest.TestCase): from zope.component import getSiteManager from repoze.bfg.interfaces import IRequest from repoze.bfg.interfaces import IView - from repoze.bfg.interfaces import IViewPermission - + from repoze.bfg.interfaces import IRendererFactory import repoze.bfg.tests context = DummyContext(repoze.bfg.tests) @@ -335,9 +334,17 @@ class TestViewDirective(unittest.TestCase): def __call__(self): return {'a':'1'} - import os + class Renderer: + def __call__(self, path): + self.path = path + return lambda *arg: 'Hello!' + + renderer = Renderer() + sm = getSiteManager() + sm.registerUtility(renderer, IRendererFactory, name='.txt') + fixture = 'fixtures/minimal.txt' - self._callFUT(context, 'repoze.view', IFoo, view=view, template=fixture) + self._callFUT(context, 'repoze.view', IFoo, view=view, renderer=fixture) actions = context.actions self.assertEqual(len(actions), 1) @@ -347,29 +354,33 @@ class TestViewDirective(unittest.TestCase): self.assertEqual(action['discriminator'], discrim) register = action['callable'] register() - sm = getSiteManager() wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='') self.assertEqual(wrapper.__module__, view.__module__) self.assertEqual(wrapper.__name__, view.__name__) self.assertEqual(wrapper.__doc__, view.__doc__) - result = wrapper(None, None) - self.assertEqual(result.body, 'Hello.\n') + request = DummyRequest() + result = wrapper(None, request) + self.assertEqual(result.body, 'Hello!') + self.assertEqual(renderer.path, 'repoze.bfg.tests:fixtures/minimal.txt') def test_with_template_no_view_callable(self): from zope.interface import Interface from zope.component import getSiteManager from repoze.bfg.interfaces import IRequest from repoze.bfg.interfaces import IView - from repoze.bfg.interfaces import IViewPermission + from repoze.bfg.interfaces import IRendererFactory import repoze.bfg.tests context = DummyContext(repoze.bfg.tests) class IFoo(Interface): pass - import os - fixture = 'fixtures/minimal.txt' - self._callFUT(context, 'repoze.view', IFoo, template=fixture) + sm = getSiteManager() + def renderer_factory(path): + return lambda *arg: 'Hello!' + sm.registerUtility(renderer_factory, IRendererFactory, name='.txt') + + self._callFUT(context, 'repoze.view', IFoo, renderer='foo.txt') actions = context.actions self.assertEqual(len(actions), 1) @@ -379,10 +390,11 @@ class TestViewDirective(unittest.TestCase): self.assertEqual(action['discriminator'], discrim) register = action['callable'] register() - sm = getSiteManager() wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='') - result = wrapper(None, None) - self.assertEqual(result.body, 'Hello.\n') + request = DummyRequest() + request.environ = {} + result = wrapper(None, request) + self.assertEqual(result.body, 'Hello!') def test_request_type_asinterface(self): from zope.component import getSiteManager -- cgit v1.2.3