From dc405b2e9bac8e43350442a7824901f5ced8e3d5 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 24 Jun 2009 04:04:06 +0000 Subject: - Added the ``repoze.bfg.url.route_url`` API. This is meant to "front" for the Routes ``url_for`` API. See the URL Dispatch narrative chapter and the "repoze.bfg.url" module API documentation for more information. --- repoze/bfg/tests/test_url.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_url.py b/repoze/bfg/tests/test_url.py index 64cf52383..e42089173 100644 --- a/repoze/bfg/tests/test_url.py +++ b/repoze/bfg/tests/test_url.py @@ -156,6 +156,50 @@ class UrlEncodeTests(unittest.TestCase): def test_dict(self): result = self._callFUT({'a':1}) self.assertEqual(result, 'a=1') + +class TestRouteUrl(unittest.TestCase): + def _callFUT(self, *arg, **kw): + from repoze.bfg.url import route_url + return route_url(*arg, **kw) + + def test_it(self): + from routes import Mapper + mapper = Mapper(controller_scan=None, directory=None, + explicit=True, always_scan=False) + args = {'a':'1', 'b':'2', 'c':'3'} + mapper.connect('flub', ':a/:b/:c') + mapper.create_regs([]) + environ = {'SERVER_NAME':'example.com', 'wsgi.url_scheme':'http', + 'SERVER_PORT':'80', 'wsgiorg.routing_args':((), args)} + mapper.environ = environ + from routes import request_config + config = request_config() + config.environ = environ + config.mapper = mapper + config.redirect = None + request = DummyRequest() + request.environ = environ + result = self._callFUT('flub', a=1, b=2, c=3) + self.assertEqual(result, 'http://example.com/1/2/3') + + def test_it_generation_error(self): + from routes import Mapper + mapper = Mapper(controller_scan=None, directory=None, + explicit=True, always_scan=False) + args = {'a':'1', 'b':'2', 'c':'3'} + mapper.connect('flub', ':a/:b/:c') + mapper.create_regs([]) + environ = {'SERVER_NAME':'example.com', 'wsgi.url_scheme':'http', + 'SERVER_PORT':'80', 'wsgiorg.routing_args':((), args)} + mapper.environ = environ + from routes import request_config + config = request_config() + config.environ = environ + config.mapper = mapper + config.redirect = None + request = DummyRequest() + request.environ = environ + self.assertRaises(ValueError, self._callFUT, 'flub', a=1) class DummyContext(object): def __init__(self, next=None): -- cgit v1.2.3