Changeset 3832
- Timestamp:
- 12/17/07 14:02:20 (1 year ago)
- Files:
-
- trunk/tg/controllers.py (modified) (2 diffs)
- trunk/tg/__init__.py (modified) (1 diff)
- trunk/tg/templates/turbogears/+package+/config/middleware.py_tmpl (modified) (3 diffs)
- trunk/tg/tests/__init__.py (modified) (1 diff)
- trunk/tg/tests/test_decorators.py (modified) (1 diff)
- trunk/tg/tests/test_tg_controller_dispatch.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/tg/controllers.py
r3653 r3832 1 1 """Basic controller class for turbogears""" 2 2 from pylons.controllers import ObjectDispatchController, DecoratedController 3 from tg.exceptions import HTTPFound 3 4 4 5 class TurboGearsController(ObjectDispatchController): … … 12 13 def _dispatch_call(self): 13 14 return self._perform_call(None, None) 15 16 def redirect(url, redirect_params=None, **kw): 17 """Redirect to a given url.""" 18 params = redirect_params or {} 19 params.update(kw) 20 if params: 21 url += '?' + urllib.urlencode(params, True) 22 raise HTTPFound(url) trunk/tg/__init__.py
r3653 r3832 38 38 39 39 """ 40 from controllers import TurboGearsController 40 from controllers import TurboGearsController, redirect 41 41 42 42 from pylons.decorators import expose, new_validate as validate trunk/tg/templates/turbogears/+package+/config/middleware.py_tmpl
r3757 r3832 4 4 from paste.urlparser import StaticURLParser 5 5 from paste.deploy.converters import asbool 6 from paste import httpexceptions 6 7 7 8 from pylons import config … … 46 47 app = CacheMiddleware(app, config) 47 48 48 # Configure and add ToscaWidgets support49 # Configure and add ToscaWidgets support 49 50 host_framework = PylonsHostFramework(default_view="genshi") 50 51 app = TGWidgetsMiddleware(app, host_framework) … … 61 62 app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf) 62 63 64 # Stack httpexceptions middleware so redirect, abort, etc.. work 65 # XXX: Why doesn't Pylons stack this internally? 66 app = httpexceptions.make_middleware(app) 67 63 68 # Establish the Registry for this application 64 69 app = RegistryManager(app) trunk/tg/tests/__init__.py
r3648 r3832 6 6 from paste.wsgiwrappers import WSGIRequest, WSGIResponse 7 7 from pylons.util import ContextObj, PylonsContext 8 from pylons.testutil import ControllerWrap, SetupCache Context9 import pylons.tests8 from pylons.testutil import ControllerWrap, SetupCacheGlobal 9 #import pylons.tests 10 10 11 11 data_dir = os.path.dirname(os.path.abspath(__file__)) trunk/tg/tests/test_decorators.py
r3600 r3832 7 7 import pylons 8 8 from tg.controllers import TurboGearsController 9 from tg.decorators import expose, before_call9 from pylons.decorators import expose 10 10 11 11 from turbojson.jsonify import jsonify trunk/tg/tests/test_tg_controller_dispatch.py
r3600 r3832 2 2 from paste.fixture import TestApp 3 3 from paste.registry import RegistryManager 4 import paste.httpexceptions ashttpexceptions4 from paste import httpexceptions 5 5 6 6 import tg … … 8 8 from tg.controllers import TurboGearsController 9 9 from pylons.decorators import expose 10 from pylons.controllers.util import redirect_to11 10 from routes import Mapper 12 11 from routes.middleware import RoutesMiddleware … … 38 37 sub = SubController() 39 38 39 @expose() 40 def redirect_me(self): 41 tg.redirect('/') 40 42 41 43 class TestTGController(TestWSGIController): … … 46 48 app = self.sap = SetupCacheGlobal(app, self.baseenviron) 47 49 app = RegistryManager(app) 50 app = httpexceptions.make_middleware(app) 48 51 self.app = TestApp(app) 49 52 … … 70 73 assert 'tim' in resp.body 71 74 assert 'joe' in resp.body 75 76 def test_redirect(self): 77 resp = self.app.get('/redirect_me').follow() 78 self.failUnless('hello world' in resp)