From e06153d2a851513c435b9f7dc2a5d8f3a1191405 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 16 Nov 2009 22:05:17 +0000 Subject: Failing one test. --- repoze/bfg/tests/test_registry.py | 373 +++++++++++++++++++++++++++++++++++++- 1 file changed, 372 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/tests/test_registry.py') diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py index 3eada7b1c..11f5cbf3a 100644 --- a/repoze/bfg/tests/test_registry.py +++ b/repoze/bfg/tests/test_registry.py @@ -61,6 +61,355 @@ class TestRegistry(unittest.TestCase): self.assertEqual(overrides.inserted, [('path', 'opackage', 'oprefix')]) self.assertEqual(overrides.package, package) + def _registerRenderer(self, reg, name='.txt'): + from repoze.bfg.interfaces import IRendererFactory + from repoze.bfg.interfaces import ITemplateRenderer + from zope.interface import implements + class Renderer: + implements(ITemplateRenderer) + def __init__(self, path): + pass + def __call__(self, *arg): + return 'Hello!' + reg.registerUtility(Renderer, IRendererFactory, name=name) + + def test_map_view_as_function_context_and_request(self): + def view(context, request): + return 'OK' + reg = self._makeOne() + result = reg.map_view(view) + self.failUnless(result is view) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_function_with_attr(self): + def view(context, request): + """ """ + reg = self._makeOne() + result = reg.map_view(view, attr='__name__') + self.failIf(result is view) + self.assertRaises(TypeError, result, None, None) + + def test_map_view_as_function_with_attr_and_renderer(self): + reg = self._makeOne() + self._registerRenderer(reg) + def view(context, request): + """ """ + result = reg.map_view(view, attr='__name__', + renderer_name='fixtures/minimal.txt') + self.failIf(result is view) + self.assertRaises(TypeError, result, None, None) + + def test_map_view_as_function_requestonly(self): + reg = self._makeOne() + def view(request): + return 'OK' + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_function_requestonly_with_attr(self): + reg = self._makeOne() + def view(request): + """ """ + result = reg.map_view(view, attr='__name__') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertRaises(TypeError, result, None, None) + + def test_map_view_as_newstyle_class_context_and_request(self): + reg = self._makeOne() + class view(object): + def __init__(self, context, request): + pass + def __call__(self): + return 'OK' + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_newstyle_class_context_and_request_with_attr(self): + reg = self._makeOne() + class view(object): + def __init__(self, context, request): + pass + def index(self): + return 'OK' + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_newstyle_class_context_and_request_attr_and_renderer( + self): + reg = self._makeOne() + self._registerRenderer(reg) + class view(object): + def __init__(self, context, request): + pass + def index(self): + return {'a':'1'} + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_as_newstyle_class_requestonly(self): + reg = self._makeOne() + class view(object): + def __init__(self, request): + pass + def __call__(self): + return 'OK' + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_newstyle_class_requestonly_with_attr(self): + reg = self._makeOne() + class view(object): + def __init__(self, request): + pass + def index(self): + return 'OK' + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_newstyle_class_requestonly_with_attr_and_renderer(self): + reg = self._makeOne() + self._registerRenderer(reg) + class view(object): + def __init__(self, request): + pass + def index(self): + return {'a':'1'} + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_as_oldstyle_class_context_and_request(self): + reg = self._makeOne() + class view: + def __init__(self, context, request): + pass + def __call__(self): + return 'OK' + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_oldstyle_class_context_and_request_with_attr(self): + reg = self._makeOne() + class view: + def __init__(self, context, request): + pass + def index(self): + return 'OK' + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_oldstyle_class_context_and_request_attr_and_renderer( + self): + reg = self._makeOne() + self._registerRenderer(reg) + class view: + def __init__(self, context, request): + pass + def index(self): + return {'a':'1'} + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_as_oldstyle_class_requestonly(self): + reg = self._makeOne() + class view: + def __init__(self, request): + pass + def __call__(self): + return 'OK' + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_oldstyle_class_requestonly_with_attr(self): + reg = self._makeOne() + class view: + def __init__(self, request): + pass + def index(self): + return 'OK' + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_oldstyle_class_requestonly_attr_and_renderer(self): + reg = self._makeOne() + self._registerRenderer(reg) + class view: + def __init__(self, request): + pass + def index(self): + return {'a':'1'} + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.assertEqual(view.__name__, result.__name__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_as_instance_context_and_request(self): + reg = self._makeOne() + class View: + def __call__(self, context, request): + return 'OK' + view = View() + result = reg.map_view(view) + self.failUnless(result is view) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_instance_context_and_request_and_attr(self): + reg = self._makeOne() + class View: + def index(self, context, request): + return 'OK' + view = View() + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_instance_context_and_request_attr_and_renderer(self): + reg = self._makeOne() + self._registerRenderer(reg) + class View: + def index(self, context, request): + return {'a':'1'} + view = View() + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_as_instance_requestonly(self): + reg = self._makeOne() + class View: + def __call__(self, request): + return 'OK' + view = View() + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.failUnless('instance' in result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_instance_requestonly_with_attr(self): + reg = self._makeOne() + class View: + def index(self, request): + return 'OK' + view = View() + result = reg.map_view(view, attr='index') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.failUnless('instance' in result.__name__) + self.assertEqual(result(None, None), 'OK') + + def test_map_view_as_instance_requestonly_with_attr_and_renderer(self): + reg = self._makeOne() + self._registerRenderer(reg) + class View: + def index(self, request): + return {'a':'1'} + view = View() + result = reg.map_view( + view, attr='index', + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + self.failUnless('instance' in result.__name__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_rendereronly(self): + reg = self._makeOne() + self._registerRenderer(reg) + def view(context, request): + return {'a':'1'} + result = reg.map_view( + view, + renderer_name='repoze.bfg.tests:fixtures/minimal.txt') + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + + def test_map_view_defaultrendereronly(self): + reg = self._makeOne() + self._registerRenderer(reg, name='') + def view(context, request): + return {'a':'1'} + result = reg.map_view(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + class TestBFGViewGrokker(unittest.TestCase): def setUp(self): cleanUp() @@ -133,7 +482,6 @@ class TestDefaultRootFactory(unittest.TestCase): self.assertEqual(root.a, 1) self.assertEqual(root.b, 2) - class DummyModule: __path__ = "foo" __name__ = "dummy" @@ -157,3 +505,26 @@ class DummyOverrides: def insert(self, path, package, prefix): self.inserted.append((path, package, prefix)) + +class DummyRequest: + def __init__(self, environ=None): + if environ is None: + environ = {} + self.environ = environ + + def get_response(self, application): + return application + + def copy(self): + self.copied = True + return self + +class DummyResponse: + status = '200 OK' + headerlist = () + def __init__(self, body=None): + if body is None: + self.app_iter = () + else: + self.app_iter = [body] + -- cgit v1.2.3