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')
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/')