def test_to_json(self): user = User(email='*****@*****.**', password='******') db.session.add(user) db.session.commit() with self.app.test_request_context('/'): user_json = user.to_json() expected_keys = ['id', 'username', 'email', 'avatar_url', 'join_time', 'username_url'] self.assertEqual(sorted(user_json.keys()), sorted(expected_keys))
def populate_users(num=20): '''填充用户''' from random import seed import forgery_py import hashlib seed() for i in range(num): user = User(username=forgery_py.internet.user_name(True), password=forgery_py.lorem_ipsum.word(), email=forgery_py.internet.email_address()) user.save() user.set_password(user.password) user.save() avater_hash = hashlib.md5(user.email.encode('utf-8')).hexdigest() up = UserProfile(avatar_hash=avater_hash, user=user) up.save()
def test_follow(self): user1 = User(email="*****@*****.**", password='******') user2 = User(email="*****@*****.**", password='******') db.session.add(user1) db.session.add(user2) db.session.commit() self.assertFalse(user1.is_following(user2)) self.assertFalse(user1.is_followed_by(user2)) user1.follow(user2) db.session.add(user1) db.session.commit() self.assertTrue(user1.is_following(user2)) self.assertFalse(user1.is_followed_by(user2)) self.assertTrue(user2.is_followed_by(user1)) self.assertTrue(user1.followed.count() == 1) self.assertTrue(user2.followers.count() == 1) f = user1.followed.all()[-1] self.assertTrue(f.followed == user2) f = user2.followers.all()[-1] self.assertTrue(f.follower == user1) user1.unfollow(user2) db.session.add(user1) db.session.commit() self.assertTrue(user1.followed.count() == 0) self.assertTrue(user2.followers.count() == 0) self.assertTrue(Follow.query.count() == 0)
def test_password_salts_is_random(self): user1 = User(password="******") user2 = User(password="******") self.assertTrue(user1.password_hash != user2.password_hash)
def test_password_verification(self): user = User(password="******") self.assertTrue(user.verify_password('guoweikuang')) self.assertFalse(user.verify_password('hello'))
def test_password_no_getter(self): user = User(password="******") with self.assertRaises(AttributeError): user.password
def test_password_setter(self): user = User(password="******") self.assertTrue(user.password_hash is not None)