def test_logout(self): from horus.strings import UIStringsBase as Str from horus.views import AuthController from horus.tests.models import User from horus.interfaces import IUserClass from horus.interfaces import IActivationClass from horus.tests.models import Activation self.config.registry.registerUtility(Activation, IActivationClass) self.config.registry.registerUtility(User, IUserClass) self.config.add_route('index', '/') self.config.include('horus') self.config.registry.settings['horus.login_redirect'] = 'index' self.config.registry.settings['horus.logout_redirect'] = 'index' request = testing.DummyRequest() invalidate = Mock() request.user = Mock() request.session = Mock() request.session.invalidate = invalidate view = AuthController(request) with patch('horus.views.forget') as forget: with patch('horus.views.HTTPFound') as HTTPFound: with patch('horus.views.FlashMessage') as FlashMessage: view.logout() FlashMessage.assert_called_with(request, Str.logout, kind="success") forget.assert_called_with(request) assert invalidate.called assert HTTPFound.called
def test_logout(self): from horus.views import AuthController from horus.tests.models import User from horus.interfaces import IUserClass from horus.interfaces import IActivationClass from horus.tests.models import Activation self.config.registry.registerUtility(Activation, IActivationClass) self.config.registry.registerUtility(User, IUserClass) self.config.add_route('index', '/') self.config.include('horus') request = testing.DummyRequest() flash = Mock() invalidate = Mock() request.user = Mock() request.session = Mock() request.session.invalidate = invalidate request.session.flash = flash view = AuthController(request) with patch('horus.views.forget') as forget: with patch('horus.views.HTTPFound') as HTTPFound: view.logout() flash.assert_called_with('Logged out successfully.', 'success') forget.assert_called_with(request) assert invalidate.called assert HTTPFound.called
def persona(self): request = self.request schema = schemas.PersonaSchema().bind(request=request) form = deform.Form( schema, formid='persona', use_ajax=True, ajax_options=self.ajax_options ) lm = request.layout_manager lm.layout.add_form(form) try: if request.POST.get('__formid__', '') == 'persona': persona = form.validate(request.POST.items()) if persona.get('id', None) == -1: controller = AuthController(request) return controller.logout() else: # TODO: multiple personas persona = None except deform.exception.ValidationFailure as e: return dict(persona={'form': e.render()}) else: persona = dict(id=0 if request.user else -1) return dict(persona={'form': form.render(persona)})
def persona(self): request = self.request schema = schemas.PersonaSchema().bind(request=request) form = deform.Form(schema, formid="persona", use_ajax=True, ajax_options=self.ajax_options) lm = request.layout_manager lm.layout.add_form(form) try: if request.POST.get("__formid__", "") == "persona": persona = form.validate(request.POST.items()) if persona.get("id", None) == -1: controller = AuthController(request) return controller.logout() else: # TODO: multiple personas persona = None except deform.exception.ValidationFailure as e: return dict(persona={"form": e.render()}) else: persona = dict(id=0 if request.user else -1) return dict(persona={"form": form.render(persona)})