You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1014 B

  1. import unittest
  2. from app import create_app, db
  3. from app.models import User
  4. class UserModelTestCase(unittest.TestCase):
  5. def setUp(self):
  6. self.app = create_app('testing')
  7. self.app_context = self.app.app_context()
  8. self.app_context.push()
  9. db.create_all()
  10. def tearDown(self):
  11. db.session.remove()
  12. db.drop_all()
  13. self.app_context.pop()
  14. def test_password_setter(self):
  15. u = User(password='cat')
  16. self.assertTrue(u.password_hash is not None)
  17. def test_no_password_getter(self):
  18. u = User(password='cat')
  19. with self.assertRaises(AttributeError):
  20. u.password
  21. def test_password_verification(self):
  22. u = User(password='cat')
  23. self.assertTrue(u.verify_password('cat'))
  24. self.assertFalse(u.verify_password('dog'))
  25. def test_password_salts_are_random(self):
  26. u = User(password='cat')
  27. u2 = User(password='cat')
  28. self.assertTrue(u.password_hash != u2.password_hash)