[Repoze-checkins] r1288 - in repoze.bfg/trunk/repoze/bfg: . tests

Chris McDonough chrism at agendaless.com
Fri Jul 11 23:20:57 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Fri Jul 11 23:20:57 2008
New Revision: 1288

Log:
THe redirect-on-slash story isn't part of the publisher.


Modified:
   repoze.bfg/trunk/repoze/bfg/router.py
   repoze.bfg/trunk/repoze/bfg/tests/test_router.py

Modified: repoze.bfg/trunk/repoze/bfg/router.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/router.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/router.py	Fri Jul 11 23:20:57 2008
@@ -15,9 +15,8 @@
 _marker = ()
 
 class Router:
-    def __init__(self, root_policy, default_redirects=True):
+    def __init__(self, root_policy):
         self.root_policy = root_policy
-        self.default_redirects = default_redirects
 
     def __call__(self, environ, start_response):
         request = Request(environ)
@@ -26,27 +25,20 @@
         path = environ.get('PATH_INFO', '/')
         traverser = getMultiAdapter((root, request), IPublishTraverserFactory)
         context, name, subpath = traverser(path)
-        if self.default_redirects and (not name) and (not path.endswith('/')):
-            # if this is the default view of the context, and the URL
-            # doesn't end in a slash, redirect to the url + '/' (so we
-            # don't have to play base tag games)
-            app = HTTPFound(add_slash=True)
+        request.subpath = subpath
+        request.view_name = name
+        app = queryMultiAdapter((context, request), IViewFactory, name=name,
+                                default=_marker)
+        if app is _marker:
+            app = HTTPNotFound(request.url)
         else:
-            request.subpath = subpath
-            request.view_name = name
-            app = queryMultiAdapter((context, request), IViewFactory, name=name,
-                                    default=_marker)
-            if app is _marker:
-                app = HTTPNotFound(request.url)
-            else:
-                app = getMultiAdapter((context, request, app),
-                                      IWSGIApplicationFactory)
+            app = getMultiAdapter((context, request, app),
+                                  IWSGIApplicationFactory)
         return app(environ, start_response)
 
-def make_app(root_policy, package=None, default_redirects=True,
-             filename='configure.zcml'):
+def make_app(root_policy, package=None, filename='configure.zcml'):
     import zope.configuration.xmlconfig
     zope.configuration.xmlconfig.file(filename, package=package)
-    return Router(root_policy, default_redirects)
+    return Router(root_policy)
 
     

Modified: repoze.bfg/trunk/repoze/bfg/tests/test_router.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/tests/test_router.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/tests/test_router.py	Fri Jul 11 23:20:57 2008
@@ -60,30 +60,6 @@
         self.assertEqual(status, '404 Not Found')
         self.failUnless('http://localhost:8080' in result[0], result)
 
-    def test_call_default_view_redirect(self):
-        rootpolicy = make_rootpolicy(None)
-        context = DummyContext()
-        traversalfactory = make_traversal_factory(context, '', [])
-        response = DummyResponse()
-        viewfactory = make_view_factory(response)
-        wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world'])
-        environ = self._makeEnviron(PATH_INFO='/doesnt/end/in/slash')
-        self._registerTraverserFactory(traversalfactory, '', None, None)
-        self._registerViewFactory(viewfactory, '', None, None)
-        self._registerWSGIFactory(wsgifactory, '', None, None, None)
-        router = self._makeOne(rootpolicy)
-        start_response = DummyStartResponse()
-        result = router(environ, start_response)
-        headers = start_response.headers
-        self.assertEqual(len(headers), 3)
-        self.assertEqual(
-            headers[0],
-            ('content-type', 'text/html; charset=UTF-8'))
-        self.assertEqual(
-            headers[1],
-            ('location', 'http://localhost:8080/doesnt/end/in/slash/'))
-        self.assertEqual(start_response.status, '302 Found')
-
     def test_call_view_registered_nonspecific_default_path(self):
         rootpolicy = make_rootpolicy(None)
         context = DummyContext()


More information about the Repoze-checkins mailing list