summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_url.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-17 19:58:01 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-17 19:58:01 +0000
commit750ce41f217cd7b638ad5b69fcb9df1b49841b58 (patch)
treea0a8edbc60694d3ae16b70570b0184a8ef28ee65 /repoze/bfg/tests/test_url.py
parent19473e78e61ad084f07a0f7820a75b6c64d93dcd (diff)
downloadpyramid-750ce41f217cd7b638ad5b69fcb9df1b49841b58.tar.gz
pyramid-750ce41f217cd7b638ad5b69fcb9df1b49841b58.tar.bz2
pyramid-750ce41f217cd7b638ad5b69fcb9df1b49841b58.zip
- Add a ``repoze.bfg.url.static_url`` API which is capable of
generating URLs to static resources defined by the ``<static>`` ZCML directive. See the "Views" narrative chapter's section titled "Generating Static Resource URLs" for more information.
Diffstat (limited to 'repoze/bfg/tests/test_url.py')
-rw-r--r--repoze/bfg/tests/test_url.py65
1 files changed, 64 insertions, 1 deletions
diff --git a/repoze/bfg/tests/test_url.py b/repoze/bfg/tests/test_url.py
index 5f0fde872..5833b8880 100644
--- a/repoze/bfg/tests/test_url.py
+++ b/repoze/bfg/tests/test_url.py
@@ -202,7 +202,62 @@ class TestRouteUrl(unittest.TestCase):
mapper.raise_exc = KeyError
request = DummyRequest()
self.assertRaises(KeyError, self._callFUT, 'flub', request, a=1)
+
+class TestStaticUrl(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+ def _callFUT(self, *arg, **kw):
+ from repoze.bfg.url import static_url
+ return static_url(*arg, **kw)
+
+ def test_notfound(self):
+ from repoze.bfg.interfaces import IRoutesMapper
+ from zope.component import getSiteManager
+ mapper = DummyRoutesMapper(result='/1/2/3')
+ sm = getSiteManager()
+ sm.registerUtility(mapper, IRoutesMapper)
+ request = DummyRequest()
+ self.assertRaises(ValueError, self._callFUT, 'static/foo.css', request)
+
+ def test_abspath(self):
+ from repoze.bfg.interfaces import IRoutesMapper
+ from zope.component import getSiteManager
+ mapper = DummyRoutesMapper(result='/1/2/3')
+ sm = getSiteManager()
+ sm.registerUtility(mapper, IRoutesMapper)
+ request = DummyRequest()
+ self.assertRaises(ValueError, self._callFUT, '/static/foo.css', request)
+
+ def test_found_rel(self):
+ from repoze.bfg.interfaces import IRoutesMapper
+ from repoze.bfg.static import StaticRootFactory
+ from zope.component import getSiteManager
+ factory = StaticRootFactory('repoze.bfg.tests:fixtures')
+ routes = [DummyRoute('name', factory=factory)]
+ mapper = DummyRoutesMapper(result='/1/2/3', routes = routes)
+ sm = getSiteManager()
+ sm.registerUtility(mapper, IRoutesMapper)
+ request = DummyRequest()
+ url = self._callFUT('fixtures/minimal.pt', request)
+ self.assertEqual(url, 'http://example.com:5432/1/2/3')
+
+ def test_found_abs(self):
+ from repoze.bfg.interfaces import IRoutesMapper
+ from repoze.bfg.static import StaticRootFactory
+ from zope.component import getSiteManager
+ factory = StaticRootFactory('repoze.bfg.tests:fixtures')
+ routes = [DummyRoute('name', factory=factory)]
+ mapper = DummyRoutesMapper(result='/1/2/3', routes = routes)
+ sm = getSiteManager()
+ sm.registerUtility(mapper, IRoutesMapper)
+ request = DummyRequest()
+ url = self._callFUT('repoze.bfg.tests:fixtures/minimal.pt', request)
+ self.assertEqual(url, 'http://example.com:5432/1/2/3')
+
class DummyContext(object):
def __init__(self, next=None):
self.next = next
@@ -216,11 +271,19 @@ class DummyRequest:
class DummyRoutesMapper:
raise_exc = None
- def __init__(self, result='/1/2/3', raise_exc=False):
+ def __init__(self, result='/1/2/3', raise_exc=False, routes=()):
self.result = result
+ self.routes = routes
+
+ def get_routes(self):
+ return self.routes
def generate(self, *route_args, **newargs):
if self.raise_exc:
raise self.raise_exc
return self.result
+class DummyRoute:
+ def __init__(self, name, factory=None):
+ self.name = name
+ self.factory = factory