summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_zcml.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-30 18:56:58 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-30 18:56:58 +0000
commit11644e705834ff65cb8963333855a1db6272ae1e (patch)
tree6730225c3c81d52263f37ceac0876b11a57865ae /repoze/bfg/tests/test_zcml.py
parent1b2d8e7326cd1eaa95b3522d985e97642764c7c8 (diff)
downloadpyramid-11644e705834ff65cb8963333855a1db6272ae1e.tar.gz
pyramid-11644e705834ff65cb8963333855a1db6272ae1e.tar.bz2
pyramid-11644e705834ff65cb8963333855a1db6272ae1e.zip
Features
-------- - In previous versions of BFG, the "root factory" (the ``get_root`` callable passed to ``make_app`` or a function pointed to by the ``factory`` attribute of a route) was called with a "bare" WSGI environment. In this version, and going forward, it will be called with a ``request`` object. The request object passed to the factory implements dictionary-like methods in such a way that existing root factory code which expects to be passed an environ will continue to work. Internal -------- - The request implements dictionary-like methods that mutate and query the WSGI environ. This is only for the purpose of backwards compatibility with root factories which expect an ``environ`` rather than a request. - The ``repoze.bfg.request.create_route_request_factory`` function, which returned a request factory was removed in favor of a ``repoze.bfg.request.route_request_interface`` function, which returns an interface. - The ``repoze.bfg.request.Request`` class, which is a subclass of ``webob.Request`` now defines its own ``__setattr__``, ``__getattr__`` and ``__delattr__`` methods, which override the default WebOb behavior. The default WebOb behavior stores attributes of the request in ``self.environ['webob.adhoc_attrs']``, and retrieves them from that dictionary during a ``__getattr__``. This behavior was undesirable for speed and "expectation" reasons. Now attributes of the ``request`` are stored in ``request.__dict__`` (as you otherwise might expect from an object that did not override these methods). - Reverse the order in which the router calls the request factory and the root factory. The request factory is now called first; the resulting request is passed to the root factory. - The ``repoze.bfg.request.request_factory`` function has been removed. Its functionality is no longer required. - The "routes root factory" that wraps the default root factory when there are routes mentioned in the configuration now attaches an interface to the request via ``zope.interface.directlyProvides``. This replaces logic in the (now-gone) ``repoze.bfg.request.request_factory`` function. - The ``route`` and ``view`` ZCML directives now register an interface as a named utility (retrieved from ``repoze.bfg.request.route_request_interface``) rather than a request factory (the previous return value of the now-missing ``repoze.bfg.request.create_route_request_factory``.
Diffstat (limited to 'repoze/bfg/tests/test_zcml.py')
-rw-r--r--repoze/bfg/tests/test_zcml.py77
1 files changed, 22 insertions, 55 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 352a53e53..8106baa03 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -517,7 +517,6 @@ class TestViewDirective(unittest.TestCase):
def test_with_route_name(self):
from zope.interface import Interface
- from zope.interface import implementedBy
from zope.component import getSiteManager
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -534,13 +533,12 @@ class TestViewDirective(unittest.TestCase):
register = action['callable']
register()
sm = getSiteManager()
- factory = sm.getUtility(IRouteRequest, 'foo')
- request_type = implementedBy(factory)
+ request_type = sm.getUtility(IRouteRequest, 'foo')
discrim = ('view', IFoo, '', request_type, IView, None, None, None,
'foo', None, False, None, None, None)
self.assertEqual(action['discriminator'], discrim)
the_view = sm.adapters.lookup((IFoo, request_type), IView, name='')
- request = factory({})
+ request = DummyRequest({})
self.assertEqual(the_view(None, request), '123')
def test_with_request_method_true(self):
@@ -1591,7 +1589,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view(self):
from zope.interface import Interface
- from zope.interface import implementedBy
from zope.component import getSiteManager
from repoze.bfg.interfaces import IRouteRequest
from repoze.bfg.zcml import connect_route
@@ -1608,8 +1605,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, None, None, None)
@@ -1633,7 +1629,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_and_view_for(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1649,8 +1644,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', IDummy, '', request_type, IView, None, None, None,
'name', None, False, None, None, None)
@@ -1688,7 +1682,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_request_type(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1705,8 +1698,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, 'GET',
'name', None, False, None, None, None)
@@ -1726,7 +1718,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_request_type_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1742,8 +1733,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, 'GET',
'name', None, False, None, None, None)
@@ -1763,7 +1753,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_request_method(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1780,8 +1769,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, 'GET',
'name', None, False, None, None, None)
@@ -1801,7 +1789,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_request_method_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1817,8 +1804,8 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
+
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, 'GET',
'name', None, False, None, None, None)
@@ -1838,7 +1825,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_containment(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1854,8 +1840,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, True, None, None,
'name', None, False, None, None, None)
@@ -1875,7 +1860,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_containment_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1891,8 +1875,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, True, None, None,
'name', None, False, None, None, None)
@@ -1912,7 +1895,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_header(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1928,8 +1910,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, None, 'Host', None)
@@ -1949,7 +1930,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_header_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -1965,8 +1945,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, None, 'Host', None)
@@ -1986,7 +1965,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_path_info(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -2002,8 +1980,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, None, None, '/foo')
@@ -2023,7 +2000,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_xhr(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -2039,8 +2015,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, True, None, None, None)
@@ -2060,7 +2035,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_xhr_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -2076,8 +2050,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, True, None, None, None)
@@ -2097,7 +2070,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_accept(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -2114,8 +2086,7 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, 'text/xml', None, None)
@@ -2135,7 +2106,6 @@ class TestRouteDirective(unittest.TestCase):
def test_with_view_accept_alias(self):
from zope.component import getSiteManager
- from zope.interface import implementedBy
from repoze.bfg.zcml import connect_route
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
@@ -2151,8 +2121,8 @@ class TestRouteDirective(unittest.TestCase):
register = view_action['callable']
register()
sm = getSiteManager()
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
+
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, 'text/xml', None, None)
@@ -2206,8 +2176,7 @@ class TestStaticDirective(unittest.TestCase):
register()
sm = getSiteManager()
iface = implementedBy(StaticRootFactory)
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
wrapped = sm.adapters.lookup((iface, request_type), IView, name='')
request = DummyRequest()
self.assertEqual(wrapped(None, request).__class__, StaticURLParser)
@@ -2241,8 +2210,7 @@ class TestStaticDirective(unittest.TestCase):
register()
sm = getSiteManager()
iface = implementedBy(StaticRootFactory)
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
view = sm.adapters.lookup((iface, request_type), IView, name='')
request = DummyRequest()
self.assertEqual(view(None, request).__class__, PackageURLParser)
@@ -2277,8 +2245,7 @@ class TestStaticDirective(unittest.TestCase):
register()
sm = getSiteManager()
iface = implementedBy(StaticRootFactory)
- request_factory = sm.getUtility(IRouteRequest, 'name')
- request_type = implementedBy(request_factory)
+ request_type = sm.getUtility(IRouteRequest, 'name')
wrapped = sm.adapters.lookup((iface, request_type), IView, name='')
request = DummyRequest()
self.assertEqual(wrapped(None, request).__class__, PackageURLParser)