summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
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
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')
-rw-r--r--repoze/bfg/tests/test_static.py7
-rw-r--r--repoze/bfg/tests/test_url.py65
-rw-r--r--repoze/bfg/tests/test_urldispatch.py9
-rw-r--r--repoze/bfg/tests/test_zcml.py11
4 files changed, 83 insertions, 9 deletions
diff --git a/repoze/bfg/tests/test_static.py b/repoze/bfg/tests/test_static.py
index 7c7b5627c..355afac2a 100644
--- a/repoze/bfg/tests/test_static.py
+++ b/repoze/bfg/tests/test_static.py
@@ -148,6 +148,13 @@ class TestPackageURLParser(unittest.TestCase):
self.failUnless('404 Not Found' in body)
self.assertEqual(sr.status, '404 Not Found')
+class TestStaticRootFactory(unittest.TestCase):
+ def test_it(self):
+ from repoze.bfg.static import StaticRootFactory
+ factory = StaticRootFactory('abc')
+ self.assertEqual(factory.spec, 'abc')
+ self.assertEqual(factory({}), factory)
+
class DummyStartResponse:
def __call__(self, status, headerlist, exc_info=None):
self.status = status
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
diff --git a/repoze/bfg/tests/test_urldispatch.py b/repoze/bfg/tests/test_urldispatch.py
index 1de3d6f3b..faa375dbd 100644
--- a/repoze/bfg/tests/test_urldispatch.py
+++ b/repoze/bfg/tests/test_urldispatch.py
@@ -120,6 +120,15 @@ class RoutesRootFactoryTests(unittest.TestCase):
mapper.connect('whatever', 'archives/:action/:article')
self.assertEqual(mapper.has_routes(), True)
+ def test_get_routes(self):
+ from repoze.bfg.urldispatch import Route
+ mapper = self._makeOne(None)
+ self.assertEqual(mapper.get_routes(), [])
+ mapper.connect('whatever', 'archives/:action/:article')
+ routes = mapper.get_routes()
+ self.assertEqual(len(routes), 1)
+ self.assertEqual(routes[0].__class__, Route)
+
def test_generate(self):
mapper = self._makeOne(None)
def generator(kw):
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 7af9ab193..6161f6567 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -1848,7 +1848,7 @@ class TestStaticDirective(unittest.TestCase):
from zope.interface import implementedBy
from zope.component import getSiteManager
from repoze.bfg.zcml import connect_route
- from repoze.bfg.zcml import StaticRootFactory
+ from repoze.bfg.static import StaticRootFactory
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
import os
@@ -1887,7 +1887,7 @@ class TestStaticDirective(unittest.TestCase):
from zope.component import getSiteManager
from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
- from repoze.bfg.zcml import StaticRootFactory
+ from repoze.bfg.static import StaticRootFactory
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
context = DummyContext()
@@ -1922,7 +1922,7 @@ class TestStaticDirective(unittest.TestCase):
from zope.component import getSiteManager
from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
- from repoze.bfg.zcml import StaticRootFactory
+ from repoze.bfg.static import StaticRootFactory
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
import repoze.bfg.tests
@@ -2226,11 +2226,6 @@ class TestAll(unittest.TestCase):
self.assertEqual(all([False, False]), False)
self.assertEqual(all([False, True]), False)
-class TestStaticRootFactory(unittest.TestCase):
- def test_it(self):
- from repoze.bfg.zcml import StaticRootFactory
- StaticRootFactory({}) # it just needs construction
-
class DummyModule:
__path__ = "foo"
__name__ = "dummy"