Example #1
0
 def test_views_command_multi_view_nested(self):
     from pyramid.registry import Registry
     registry = Registry()
     command = self._makeOne(registry=registry)
     L = []
     command.out = L.append
     view1 = dummy.DummyView(context='context', view_name='a1')
     view1.__name__ = 'view1'
     view1.__view_attr__ = 'call'
     multiview1 = dummy.DummyMultiView(view1,
                                       context='context',
                                       view_name='a1')
     multiview2 = dummy.DummyMultiView(multiview1,
                                       context='context',
                                       view_name='a')
     command._find_view = lambda arg1, arg2: multiview2
     command.args = ('/foo/bar/myapp.ini#myapp', '/a')
     result = command.run()
     self.assertEqual(result, 0)
     self.assertEqual(L[1], 'URL = /a')
     self.assertEqual(L[3], '    context: context')
     self.assertEqual(L[4], '    view name: a')
     self.assertEqual(
         L[8], '    pyramid.tests.test_scripts.dummy.DummyMultiView')
     self.assertEqual(
         L[12], '        pyramid.tests.test_scripts.dummy.view1.call')
Example #2
0
    def test_views_command_multiview_with_predicates(self):
        from pyramid.registry import Registry
        registry = Registry()
        command = self._makeOne(registry=registry)
        L = []
        command.out = L.append

        def predicate():
            pass

        predicate.__text__ = "predicate = x"
        view = dummy.DummyView(context='context')
        view.__name__ = 'view'
        view.__view_attr__ = 'call'
        view.__predicates__ = [predicate]
        multiview = dummy.DummyMultiView(view,
                                         context='context',
                                         view_name='a')
        command._find_view = lambda arg1, arg2: multiview
        command.args = ('/foo/bar/myapp.ini#myapp', '/a')
        result = command.run()
        self.assertEqual(result, 0)
        self.assertEqual(L[1], 'URL = /a')
        self.assertEqual(L[3], '    context: context')
        self.assertEqual(L[4], '    view name: a')
        self.assertEqual(L[8],
                         '    pyramid.tests.test_scripts.dummy.view.call')
        self.assertEqual(L[9], '    view predicates (predicate = x)')
Example #3
0
    def test_single_route_multiview_registered(self):
        from zope.interface import Interface
        from pyramid.interfaces import IRouteRequest
        from pyramid.interfaces import IViewClassifier
        from pyramid.interfaces import IMultiView

        registry = self._makeRegistry()

        def view(): pass

        class IMyRoute(Interface):
            pass

        multiview1 = dummy.DummyMultiView(
            view, context='context',
            view_name='a1'
        )

        registry.registerAdapter(
            multiview1,
            (IViewClassifier, IMyRoute, Interface),
            IMultiView, ''
        )
        registry.registerUtility(IMyRoute, IRouteRequest, name='a')
        command = self._makeOne()
        route = dummy.DummyRoute('a', '/a')
        mapper = dummy.DummyMapper(route)
        command._get_mapper = lambda *arg: mapper
        L = []
        command.out = L.append
        command.bootstrap = (dummy.DummyBootstrap(registry=registry),)
        result = command.run()
        self.assertEqual(result, 0)
        self.assertEqual(len(L), 3)
        compare_to = L[-1].split()[:3]
        view_module = 'pyramid.tests.test_scripts.dummy'
        view_str = '<pyramid.tests.test_scripts.dummy.DummyMultiView'
        final = '%s.%s' % (view_module, view_str)

        self.assertEqual(
            compare_to,
            ['a', '/a', final]
        )
Example #4
0
 def test_views_command_multiview_with_permission(self):
     from pyramid.registry import Registry
     registry = Registry()
     command = self._makeOne(registry=registry)
     L = []
     command.out = L.append
     view = dummy.DummyView(context='context')
     view.__name__ = 'view'
     view.__view_attr__ = 'call'
     view.__permission__ = 'test'
     multiview = dummy.DummyMultiView(view, context='context', view_name='a')
     command._find_view = lambda arg1: multiview
     command.args = ('/foo/bar/myapp.ini#myapp', '/a')
     result = command.run()
     self.assertEqual(result, 0)
     self.assertEqual(L[1], 'URL = /a')
     self.assertEqual(L[3], '    context: context')
     self.assertEqual(L[4], '    view name: a')
     self.assertEqual(L[8],
                    '    pyramid.tests.test_scripts.dummy.view.call')
     self.assertEqual(L[9], '    required permission = test')