加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test.py 4.33 KB
一键复制 编辑 原始数据 按行查看 历史
lmay 提交于 2018-03-01 17:36 . 添加全文搜索
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ----------------------------------------------------------
# -- 自动化测试
# --
# ****************************
# Author: lmay.Zhou
# Blog: www.lmaye.com
# Date: 2018年2月28日 23:40:35
# ----------------------------------------------------------
import unittest
from datetime import datetime, timedelta
from core.app import db
from core.models.user_model import User
from core.models.post_model import Post
class TestCase(unittest.TestCase):
# def setUp(self):
# app.config['TESTING'] = True
# app.config['WTF_CSRF_ENABLED'] = False
# self.app = app.test_client()
# db.create_all()
#
# def tearDown(self):
# db.session.remove()
# # db.drop_all()
#
# def test_avatar(self):
# u = User(nickname='john', email='john@example.com')
# avatar = u.avatar(128)
# expected = 'http://www.gravatar.com/avatar/d4c74594d841139328695756648b6bd6'
# assert avatar[0:len(expected)] == expected
#
# def test_make_unique_nickname(self):
# u = User(nickname='john', email='john@example.com')
# db.session.add(u)
# db.session.commit()
# nickname = User.make_unique_nickname('john')
# assert nickname != 'john'
# u = User(nickname=nickname, email='susan@example.com')
# db.session.add(u)
# db.session.commit()
# nickname2 = User.make_unique_nickname('john')
# assert nickname2 != 'john'
# assert nickname2 != nickname
# def test_follow(self):
# u1 = User(nickname='john', email='john@example.com')
# u2 = User(nickname='susan', email='susan@example.com')
# db.session.add(u1)
# db.session.add(u2)
# db.session.commit()
# assert u1.unfollow(u2) is None
# u = u1.follow(u2)
# db.session.add(u)
# db.session.commit()
# assert u1.follow(u2) is None
# assert u1.is_following(u2)
# assert u1.followed.count() == 1
# assert u1.followed.first().nickname == 'susan'
# assert u2.followers.count() == 1
# assert u2.followers.first().nickname == 'john'
# u = u1.unfollow(u2)
# assert u
# db.session.add(u)
# db.session.commit()
# assert u1.is_following(u2) is False
# assert u1.followed.count() == 0
# assert u2.followers.count() == 0
def test_follow_posts(self):
# make four users
u1 = User(nickname='john', email='john@example.com')
u2 = User(nickname='susan', email='susan@example.com')
u3 = User(nickname='mary', email='mary@example.com')
u4 = User(nickname='david', email='david@example.com')
db.session.add(u1)
db.session.add(u2)
db.session.add(u3)
db.session.add(u4)
# make four posts
utcnow = datetime.utcnow()
p1 = Post(body="post from john", author=u1, timestamp=utcnow + timedelta(seconds=1))
p2 = Post(body="post from susan", author=u2, timestamp=utcnow + timedelta(seconds=2))
p3 = Post(body="post from mary", author=u3, timestamp=utcnow + timedelta(seconds=3))
p4 = Post(body="post from david", author=u4, timestamp=utcnow + timedelta(seconds=4))
db.session.add(p1)
db.session.add(p2)
db.session.add(p3)
db.session.add(p4)
db.session.commit()
# setup the followers
u1.follow(u1) # john follows himself
u1.follow(u2) # john follows susan
u1.follow(u4) # john follows david
u2.follow(u2) # susan follows herself
u2.follow(u3) # susan follows mary
u3.follow(u3) # mary follows herself
u3.follow(u4) # mary follows david
u4.follow(u4) # david follows himself
db.session.add(u1)
db.session.add(u2)
db.session.add(u3)
db.session.add(u4)
db.session.commit()
# check the followed posts of each user
f1 = u1.followed_posts().all()
f2 = u2.followed_posts().all()
f3 = u3.followed_posts().all()
f4 = u4.followed_posts().all()
assert len(f1) == 3
assert len(f2) == 2
assert len(f3) == 2
assert len(f4) == 1
assert f1 == [p4, p2, p1]
assert f2 == [p3, p2]
assert f3 == [p4, p3]
assert f4 == [p4]
if __name__ == '__main__':
unittest.main()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化