diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-09-17 19:58:01 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-09-17 19:58:01 +0000 |
| commit | 750ce41f217cd7b638ad5b69fcb9df1b49841b58 (patch) | |
| tree | a0a8edbc60694d3ae16b70570b0184a8ef28ee65 /repoze/bfg/tests/test_url.py | |
| parent | 19473e78e61ad084f07a0f7820a75b6c64d93dcd (diff) | |
| download | pyramid-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.py | 65 |
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 |
