test_user.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. from collections import OrderedDict
  3. from nose.tools import eq_
  4. from nose.tools import ok_
  5. from tracim.model import DBSession
  6. from tracim.model import User
  7. from tracim.tests import TracimTestController
  8. from tracim.fixtures.users_and_groups import Test as TestFixture
  9. class TestAuthentication(TracimTestController):
  10. application_under_test = 'main'
  11. fixtures = [TestFixture]
  12. def test_update_password(self):
  13. self._connect_user(
  14. 'lawrence-not-real-email@fsf.local',
  15. 'foobarbaz',
  16. )
  17. user = DBSession.query(User) \
  18. .filter(User.email == 'lawrence-not-real-email@fsf.local').one()
  19. try_post_user = self.app.post(
  20. '/user/{user_id}/password?_method=PUT'.format(
  21. user_id=user.user_id
  22. ),
  23. OrderedDict([
  24. ('current_password', 'foobarbaz'),
  25. ('new_password1', 'new-password'),
  26. ('new_password2', 'new-password'),
  27. ])
  28. )
  29. eq_(try_post_user.status_code, 302,
  30. "Code should be 302, but is %d" % try_post_user.status_code)
  31. user = DBSession.query(User) \
  32. .filter(User.email == 'lawrence-not-real-email@fsf.local').one()
  33. ok_(user.validate_password('new-password'))