def test_profile_update_password(self): from horus.views import ProfileController from horus.interfaces import IHorusSession from horus.events import ProfileUpdatedEvent from horus.models import crypt from horus.interfaces import IHorusUserClass from horus.tests.models import User from horus.interfaces import IHorusActivationClass from horus.tests.models import Activation self.config.registry.registerUtility(Activation, IHorusActivationClass) self.config.registry.registerUtility(User, IHorusUserClass) self.config.add_route('index', '/') self.config.include('horus') user = User(user_name='sontek', email='*****@*****.**') user.set_password('temp') self.session.add(user) self.session.flush() def handle_profile_updated(event): request = event.request session = request.registry.getUtility(IHorusSession) session.commit() self.config.add_subscriber(handle_profile_updated, ProfileUpdatedEvent) request = self.get_csrf_request(post={ 'Email': '*****@*****.**', 'Password': { 'Password': '******', 'Password-confirm': 'test123', }, }, request_method='POST') request.context = user request.matchdict = Mock() get = Mock() get.return_value = user.pk request.matchdict.get = get flash = Mock() request.session.flash = flash view = ProfileController(request) view.edit_profile() new_user = User.get_by_pk(request, user.pk) assert new_user.email == '*****@*****.**' assert not crypt.check(user.password, 'temp' + user.salt)