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))
Example #2
0
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)