def test_profile_update_password(self): from horus.views import ProfileController from hem.interfaces import IDBSession from horus.events import ProfileUpdatedEvent from horus.models import crypt from horus.interfaces import IUserClass from horus.tests.models import User 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') user = User(username='******', email='*****@*****.**') user.password = '******' self.session.add(user) self.session.flush() def handle_profile_updated(event): request = event.request session = request.registry.getUtility(IDBSession) 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.id request.matchdict.get = get flash = Mock() request.session.flash = flash view = ProfileController(request) view.edit_profile() new_user = User.get_by_id(request, user.id) assert new_user.email == '*****@*****.**' assert not crypt.check(user.password, 'temp' + user.salt)
def test_profile_update_password(self): from horus.views import ProfileController from hem.interfaces import IDBSession from horus.events import ProfileUpdatedEvent from horus.models import crypt from horus.interfaces import IUserClass from horus.tests.models import User 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') user = User(username='******', email='*****@*****.**') user.password = '******' self.session.add(user) self.session.flush() def handle_profile_updated(event): request = event.request session = request.registry.getUtility(IDBSession) 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.id request.matchdict.get = get view = ProfileController(request) view.edit_profile() new_user = User.get_by_id(request, user.id) assert new_user.email == '*****@*****.**' assert not crypt.check(user.password, 'temp' + user.salt)
def test_get_user_by_invalid_id(self): from horus.tests.models import User user = User(username='******', email='*****@*****.**') user.password = '******' self.session.add(user) self.session.commit() request = testing.DummyRequest() new_user = User.get_by_id(request, 2) assert new_user == None