Changeset 3832

Show
Ignore:
Timestamp:
12/17/07 14:02:20 (1 year ago)
Author:
alberto
Message:

implemented tg.redirect and updated imports at unittests to latest Pylons-dev

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tg/controllers.py

    r3653 r3832  
    11"""Basic controller class for turbogears""" 
    22from pylons.controllers import ObjectDispatchController, DecoratedController 
     3from tg.exceptions import HTTPFound 
    34 
    45class TurboGearsController(ObjectDispatchController): 
     
    1213    def _dispatch_call(self): 
    1314        return self._perform_call(None, None) 
     15 
     16def 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  
    3838 
    3939""" 
    40 from controllers import TurboGearsController 
     40from controllers import TurboGearsController, redirect 
    4141 
    4242from pylons.decorators import expose, new_validate as validate 
  • trunk/tg/templates/turbogears/+package+/config/middleware.py_tmpl

    r3757 r3832  
    44from paste.urlparser import StaticURLParser 
    55from paste.deploy.converters import asbool 
     6from paste import httpexceptions 
    67 
    78from pylons import config 
     
    4647    app = CacheMiddleware(app, config) 
    4748     
    48     #Configure and add ToscaWidgets support  
     49    # Configure and add ToscaWidgets support  
    4950    host_framework = PylonsHostFramework(default_view="genshi") 
    5051    app = TGWidgetsMiddleware(app, host_framework) 
     
    6162        app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf) 
    6263 
     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 
    6368    # Establish the Registry for this application 
    6469    app = RegistryManager(app) 
  • trunk/tg/tests/__init__.py

    r3648 r3832  
    66from paste.wsgiwrappers import WSGIRequest, WSGIResponse 
    77from pylons.util import ContextObj, PylonsContext 
    8 from pylons.testutil import ControllerWrap, SetupCacheContext 
    9 import pylons.tests 
     8from pylons.testutil import ControllerWrap, SetupCacheGlobal 
     9#import pylons.tests 
    1010 
    1111data_dir = os.path.dirname(os.path.abspath(__file__)) 
  • trunk/tg/tests/test_decorators.py

    r3600 r3832  
    77import pylons 
    88from tg.controllers import TurboGearsController 
    9 from tg.decorators import expose, before_call 
     9from pylons.decorators import expose 
    1010 
    1111from turbojson.jsonify import jsonify 
  • trunk/tg/tests/test_tg_controller_dispatch.py

    r3600 r3832  
    22from paste.fixture import TestApp 
    33from paste.registry import RegistryManager 
    4 import paste.httpexceptions as httpexceptions 
     4from paste import httpexceptions 
    55 
    66import tg 
     
    88from tg.controllers import TurboGearsController 
    99from pylons.decorators import expose 
    10 from pylons.controllers.util import redirect_to 
    1110from routes import Mapper 
    1211from routes.middleware import RoutesMiddleware 
     
    3837    sub = SubController() 
    3938 
     39    @expose() 
     40    def redirect_me(self): 
     41        tg.redirect('/') 
    4042 
    4143class TestTGController(TestWSGIController): 
     
    4648        app = self.sap = SetupCacheGlobal(app, self.baseenviron) 
    4749        app = RegistryManager(app) 
     50        app = httpexceptions.make_middleware(app) 
    4851        self.app = TestApp(app) 
    4952         
     
    7073        assert 'tim' in resp.body 
    7174        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)