Ejemplo n.º 1
0
 def test__find_view_route_multiview_no_view_registered(self):
     from zope.interface import Interface
     from zope.interface import implementer
     from pyramid.interfaces import IRouteRequest
     from pyramid.interfaces import IMultiView
     from pyramid.interfaces import IRootFactory
     from pyramid.registry import Registry
     registry = Registry()
     def view1():pass
     def view2():pass
     class IMyRoot(Interface):
         pass
     class IMyRoute1(Interface):
         pass
     class IMyRoute2(Interface):
         pass
     registry.registerUtility(IMyRoute1, IRouteRequest, name='a')
     registry.registerUtility(IMyRoute2, IRouteRequest, name='b')
     @implementer(IMyRoot)
     class Factory(object):
         def __init__(self, request):
             pass
     registry.registerUtility(Factory, IRootFactory)
     routes = [dummy.DummyRoute('a', '/a', matchdict={}),
               dummy.DummyRoute('b', '/a', matchdict={})]
     self._register_mapper(registry, routes)
     command = self._makeOne(registry=registry)
     request = self._makeRequest('/a', registry)
     result = command._find_view(request)
     self.assertTrue(IMultiView.providedBy(result))
Ejemplo n.º 2
0
    def test__find_view_route_no_multiview(self):
        from zope.interface import Interface
        from zope.interface import implementer
        from pyramid.interfaces import IRouteRequest
        from pyramid.interfaces import IViewClassifier
        from pyramid.interfaces import IView
        from pyramid.registry import Registry
        registry = Registry()

        def view():
            pass

        class IMyRoot(Interface):
            pass

        class IMyRoute(Interface):
            pass

        registry.registerAdapter(view, (IViewClassifier, IMyRoute, IMyRoot),
                                 IView, '')
        registry.registerUtility(IMyRoute, IRouteRequest, name='a')

        @implementer(IMyRoot)
        class Factory(object):
            def __init__(self, request):
                pass

        routes = [
            dummy.DummyRoute('a', '/a', factory=Factory, matchdict={}),
            dummy.DummyRoute('b', '/b', factory=Factory)
        ]
        self._register_mapper(registry, routes)
        command = self._makeOne(registry=registry)
        result = command._find_view('/a', registry)
        self.assertEqual(result, view)
Ejemplo n.º 3
0
 def test__find_multi_routes_none_match(self):
     command = self._makeOne()
     def factory(request): pass
     routes = [dummy.DummyRoute('a', '/a', factory=factory),
               dummy.DummyRoute('b', '/a', factory=factory)]
     mapper = dummy.DummyMapper(*routes)
     request = dummy.DummyRequest({'PATH_INFO':'/a'})
     result = command._find_multi_routes(mapper, request)
     self.assertEqual(result, [])
Ejemplo n.º 4
0
 def test__find_multi_routes_all_match(self):
     command = self._makeOne()
     def factory(request): pass
     routes = [dummy.DummyRoute('a', '/a', factory=factory, matchdict={}),
               dummy.DummyRoute('b', '/a', factory=factory, matchdict={})]
     mapper = dummy.DummyMapper(*routes)
     request = dummy.DummyRequest({'PATH_INFO':'/a'})
     result = command._find_multi_routes(mapper, request)
     self.assertEqual(result, [{'match':{}, 'route':routes[0]},
                               {'match':{}, 'route':routes[1]}])
Ejemplo n.º 5
0
 def test_views_command_single_view_route(self):
     from pyramid.registry import Registry
     registry = Registry()
     command = self._makeOne(registry=registry)
     L = []
     command.out = L.append
     route = dummy.DummyRoute('a', '/a', matchdict={})
     view = dummy.DummyView(context='context',
                            view_name='a',
                            matched_route=route,
                            subpath='')
     command._find_view = lambda arg1: view
     command.args.config_uri = '/foo/bar/myapp.ini#myapp'
     command.args.url = '/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[6], '    Route:')
     self.assertEqual(L[8], '    route name: a')
     self.assertEqual(L[9], '    route pattern: /a')
     self.assertEqual(L[10], '    route path: /a')
     self.assertEqual(L[11], '    subpath: ')
     self.assertEqual(L[15],
                      '        pyramid.tests.test_scripts.dummy.DummyView')
Ejemplo n.º 6
0
    def test_single_route_one_view_registered(self):
        from zope.interface import Interface
        from pyramid.registry import Registry
        from pyramid.interfaces import IRouteRequest
        from pyramid.interfaces import IViewClassifier
        from pyramid.interfaces import IView
        registry = Registry()

        def view():
            pass

        class IMyRoute(Interface):
            pass

        registry.registerAdapter(view, (IViewClassifier, IMyRoute, Interface),
                                 IView, '')
        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, None)
        self.assertEqual(len(L), 3)
        self.assertEqual(L[-1].split()[:4], ['a', '/a', '<function', 'view'])
Ejemplo n.º 7
0
    def test_views_command_single_view_route_with_route_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"
        route = dummy.DummyRoute('a', '/a', matchdict={}, predicate=predicate)
        view = dummy.DummyView(context='context',
                               view_name='a',
                               matched_route=route,
                               subpath='')
        command._find_view = lambda arg1, arg2: view
        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[6], '    Route:')
        self.assertEqual(L[8], '    route name: a')
        self.assertEqual(L[9], '    route pattern: /a')
        self.assertEqual(L[10], '    route path: /a')
        self.assertEqual(L[11], '    subpath: ')
        self.assertEqual(L[12], '    route predicates (predicate = x)')
        self.assertEqual(L[16],
                         '        pyramid.tests.test_scripts.dummy.DummyView')
Ejemplo n.º 8
0
    def test_single_route_one_view_registered_with_factory(self):
        from zope.interface import Interface
        from pyramid.interfaces import IRouteRequest
        from pyramid.interfaces import IViewClassifier
        from pyramid.interfaces import IView
        registry = self._makeRegistry()

        def view():pass
        class IMyRoot(Interface):
            pass
        class IMyRoute(Interface):
            pass
        registry.registerAdapter(view,
                                 (IViewClassifier, IMyRoute, IMyRoot),
                                 IView, '')
        registry.registerUtility(IMyRoute, IRouteRequest, name='a')
        command = self._makeOne()
        def factory(request): pass
        route = dummy.DummyRoute('a', '/a', factory=factory)
        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)
        self.assertEqual(L[-1].split()[:3], ['a', '/a', '<unknown>'])
Ejemplo n.º 9
0
    def test_bad_args(self):
        cmd = self._getTargetClass()([])
        cmd.bootstrap = (dummy.DummyBootstrap(), )
        cmd.args = ('/foo/bar/myapp.ini#myapp', 'a')
        route = dummy.DummyRoute('a', '/a')
        mapper = dummy.DummyMapper(route)
        cmd._get_mapper = lambda *arg: mapper

        self.assertRaises(ValueError, cmd.run)
Ejemplo n.º 10
0
 def test_good_args(self):
     cmd = self._getTargetClass()([])
     cmd.bootstrap = (dummy.DummyBootstrap(),)
     cmd.args = ('/foo/bar/myapp.ini#myapp', 'a=1')
     route = dummy.DummyRoute('a', '/a')
     mapper = dummy.DummyMapper(route)
     cmd._get_mapper = lambda *arg: mapper
     L = []
     cmd.out = lambda msg: L.append(msg)
     cmd.run()
     self.assertTrue('<unknown>' in ''.join(L))
Ejemplo n.º 11
0
 def test_route_with_no_slash_prefix(self):
     command = self._makeOne()
     route = dummy.DummyRoute('a', 'a')
     mapper = dummy.DummyMapper(route)
     command._get_mapper = lambda *arg: mapper
     L = []
     command.out = L.append
     result = command.run()
     self.assertEqual(result, None)
     self.assertEqual(len(L), 3)
     self.assertEqual(L[-1].split(), ['a', '/a', '<unknown>'])
Ejemplo n.º 12
0
 def test_single_route_no_route_registered(self):
     command = self._makeOne()
     route = dummy.DummyRoute('a', '/a')
     mapper = dummy.DummyMapper(route)
     command._get_mapper = lambda *arg: mapper
     L = []
     command.out = L.append
     result = command.run()
     self.assertEqual(result, 0)
     self.assertEqual(len(L), 3)
     self.assertEqual(L[-1].split(), ['a', '/a', '<unknown>'])
Ejemplo n.º 13
0
    def test_bad_args(self):
        cmd = self._getTargetClass()([])
        cmd.bootstrap = dummy.DummyBootstrap()
        cmd.get_config_loader = dummy.DummyLoader()
        cmd.args.config_uri = '/foo/bar/myapp.ini#myapp'
        cmd.args.config_vars = ('a',)
        route = dummy.DummyRoute('a', '/a')
        mapper = dummy.DummyMapper(route)
        cmd._get_mapper = lambda *arg: mapper

        self.assertRaises(ValueError, cmd.run)
Ejemplo n.º 14
0
 def test_route_with_no_slash_prefix(self):
     command = self._makeOne()
     route = dummy.DummyRoute('a', 'a')
     mapper = dummy.DummyMapper(route)
     command._get_mapper = lambda *arg: mapper
     L = []
     command.out = L.append
     registry = self._makeRegistry()
     command.bootstrap = (dummy.DummyBootstrap(registry=registry), )
     result = command.run()
     self.assertEqual(result, 0)
     self.assertEqual(len(L), 3)
     self.assertEqual(L[-1].split(), ['a', '/a', '<unknown>', '*'])
Ejemplo n.º 15
0
 def test_good_args(self):
     cmd = self._getTargetClass()([])
     cmd.bootstrap = dummy.DummyBootstrap()
     cmd.get_config_loader = dummy.DummyLoader()
     cmd.args.config_uri = '/foo/bar/myapp.ini#myapp'
     cmd.args.config_args = ('a=1',)
     route = dummy.DummyRoute('a', '/a')
     mapper = dummy.DummyMapper(route)
     cmd._get_mapper = lambda *arg: mapper
     registry = self._makeRegistry()
     cmd.bootstrap = dummy.DummyBootstrap(registry=registry)
     L = []
     cmd.out = lambda msg: L.append(msg)
     cmd.run()
     self.assertTrue('<unknown>' in ''.join(L))
Ejemplo n.º 16
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]
        )
Ejemplo n.º 17
0
    def test_single_route_no_views_registered(self):
        from zope.interface import Interface
        from pyramid.interfaces import IRouteRequest
        registry = self._makeRegistry()

        def view():pass
        class IMyRoute(Interface):
            pass
        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)
        self.assertEqual(L[-1].split()[:3], ['a', '/a', '<unknown>'])
Ejemplo n.º 18
0
    def test_one_route_with_long_name_one_view_registered(self):
        from zope.interface import Interface
        from pyramid.interfaces import IRouteRequest
        from pyramid.interfaces import IViewClassifier
        from pyramid.interfaces import IView
        registry = self._makeRegistry()

        def view():pass

        class IMyRoute(Interface):
            pass

        registry.registerAdapter(
            view,
            (IViewClassifier, IMyRoute, Interface),
            IView, ''
        )

        registry.registerUtility(IMyRoute, IRouteRequest,
                                 name='very_long_name_123')

        command = self._makeOne()
        route = dummy.DummyRoute(
            'very_long_name_123',
            '/and_very_long_pattern_as_well'
        )
        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]
        self.assertEqual(
            compare_to,
            ['very_long_name_123',
             '/and_very_long_pattern_as_well',
             'pyramid.tests.test_scripts.test_proutes.view']
        )