Exemplo n.º 1
0
    def test_override(self):
        def controller(foo):
            def wrapper(request):
                return foo
            return wrapper

        from happy.routes import RoutesDispatcher
        d = RoutesDispatcher()
        d.register(controller('one'), 'one', '/foo')

        import webob
        request = webob.Request.blank('/foo')
        self.assertEqual(d(request), 'one')

        self.assertRaises(ValueError, d.register,
                          controller('two'), 'two', '/foo')
        d.override(controller('two'), 'two', '/foo')
        self.assertEqual(d(request), 'two')
Exemplo n.º 2
0
    def test_url(self):
        controller = lambda x: x

        from happy.routes import RoutesDispatcher
        d = RoutesDispatcher()
        one = d.register(controller, 'one', '/foo/bar/*')
        two = d.register(controller, 'two', '/foo/:bar')
        three = d.override(controller, 'three', '/foo/:bar/')

        import webob
        request = webob.Request.blank('/')

        self.assertEqual(one.url(request), 'http://localhost/foo/bar/')
        self.assertEqual(one.url(request, subpath=['bean', 'cheese']),
                         'http://localhost/foo/bar/bean/cheese')
        self.assertEqual(two.url(request, bar='booze'),
                         'http://localhost/foo/booze')
        self.assertEqual(three.url(request, bar='booze'),
                         'http://localhost/foo/booze/')