summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/tests/test_url.py63
-rw-r--r--pyramid/tests/test_urldispatch.py8
2 files changed, 67 insertions, 4 deletions
diff --git a/pyramid/tests/test_url.py b/pyramid/tests/test_url.py
index e13fbbb91..08708d93b 100644
--- a/pyramid/tests/test_url.py
+++ b/pyramid/tests/test_url.py
@@ -160,11 +160,18 @@ class TestRouteUrl(unittest.TestCase):
request = _makeRequest()
mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3'))
request.registry.registerUtility(mapper, IRoutesMapper)
- result = self._callFUT('flub', request, 'extra1', 'extra2',
- a=1, b=2, c=3, _query={'a':1},
- _anchor=u"foo")
+ result = self._callFUT('flub', request, 'extra1', 'extra2')
self.assertEqual(result,
- 'http://example.com:5432/1/2/3/extra1/extra2?a=1#foo')
+ 'http://example.com:5432/1/2/3/extra1/extra2')
+
+ def test_with_elements_path_endswith_slash(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3/'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ result = self._callFUT('flub', request, 'extra1', 'extra2')
+ self.assertEqual(result,
+ 'http://example.com:5432/1/2/3/extra1/extra2')
def test_no_elements(self):
from pyramid.interfaces import IRoutesMapper
@@ -176,6 +183,43 @@ class TestRouteUrl(unittest.TestCase):
self.assertEqual(result,
'http://example.com:5432/1/2/3?a=1#foo')
+ def test_with_anchor_string(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ result = self._callFUT('flub', request, _anchor="La Pe\xc3\xb1a")
+ self.assertEqual(result,
+ 'http://example.com:5432/1/2/3#La Pe\xc3\xb1a')
+
+ def test_with_anchor_unicode(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ anchor = unicode('La Pe\xc3\xb1a', 'utf-8')
+ result = self._callFUT('flub', request, _anchor=anchor)
+ self.assertEqual(result,
+ 'http://example.com:5432/1/2/3#La Pe\xc3\xb1a')
+
+ def test_with_query(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ result = self._callFUT('flub', request, _query={'q':'1'})
+ self.assertEqual(result,
+ 'http://example.com:5432/1/2/3?q=1')
+
+ def test_with_app_url(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute('/1/2/3'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ result = self._callFUT('flub', request, _app_url='http://example2.com')
+ self.assertEqual(result,
+ 'http://example2.com/1/2/3')
+
def test_it_generation_error(self):
from pyramid.interfaces import IRoutesMapper
request = _makeRequest()
@@ -217,6 +261,17 @@ class TestRouteUrl(unittest.TestCase):
self.assertEqual(result, 'http://example2.com/1/2/3/a')
self.assertEqual(route.kw, {}) # shouldnt have anchor/query
+ def test_with_anchor_app_url_elements_and_query(self):
+ from pyramid.interfaces import IRoutesMapper
+ request = _makeRequest()
+ mapper = DummyRoutesMapper(route=DummyRoute(result='/1/2/3'))
+ request.registry.registerUtility(mapper, IRoutesMapper)
+ result = self._callFUT('flub', request, 'element1',
+ _app_url='http://example2.com',
+ _anchor='anchor', _query={'q':'1'})
+ self.assertEqual(result,
+ 'http://example2.com/1/2/3/element1?q=1#anchor')
+
class TestCurrentRouteUrl(unittest.TestCase):
def setUp(self):
cleanUp()
diff --git a/pyramid/tests/test_urldispatch.py b/pyramid/tests/test_urldispatch.py
index a0401ba6b..5be04478f 100644
--- a/pyramid/tests/test_urldispatch.py
+++ b/pyramid/tests/test_urldispatch.py
@@ -175,6 +175,14 @@ class RoutesMapperTests(unittest.TestCase):
self.assertEqual(result['route'], mapper.routes['root'])
self.assertEqual(result['match'], {})
+ def test___call__root_route_when_path_info_notempty(self):
+ mapper = self._makeOne()
+ mapper.connect('root', '/')
+ request = self._getRequest(PATH_INFO='/')
+ result = mapper(request)
+ self.assertEqual(result['route'], mapper.routes['root'])
+ self.assertEqual(result['match'], {})
+
def test___call__no_path_info(self):
mapper = self._makeOne()
mapper.connect('root', '/')