-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests.py
More file actions
81 lines (72 loc) · 2.99 KB
/
Copy pathtests.py
File metadata and controls
81 lines (72 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from datetime import datetime,timedelta
import unittest
from Projectdir import db,app
from Projectdir.models import User,Post
class UserModelCase(unittest.TestCase):
def setUp(self):
app.config['SQLALCHEMY_DATABASE_URI']='sqlite://'
self.app_context=app.app_context()
self.app_context.push()
db.create_all()
def tearDown(self):
db.session.remove()
db.drop_all()
self.app_context.pop()
def test_password_hashing(self):
u=User(username='susan')
u.set_password('cat')
self.assertFalse(u.check_password('dog'))
self.assertTrue(u.check_password('cat'))
def test_avatar(self):
u=User(username='john',email='john@example.com')
self.assertEqual(u.avatar(128),('https://www.gravatar.com/avatar/'
'd4c74594d841139328695756648b6bd6'
'?d=identicon&s=128'))
def test_follow(self):
u1=User(username='john',email='john@example.com')
u2=User(username='susan',email='susan@example.com')
db.session.add(u1)
db.session.add(u2)
db.session.commit()
self.assertEqual(u1.followed.all(),[])
self.assertEqual(u1.followers.all(),[])
u1.follow(u2)
db.session.commit()
self.assertTrue(u1.is_following(u2))
self.assertEqual(u1.followed.count(),1)
self.assertEqual(u1.followed.first().username,'susan')
self.assertEqual(u2.followers.count(),1)
self.assertEqual(u2.followers.first().username,'john')
u1.unfollow(u2)
db.session.commit()
self.assertFalse(u1.is_following(u2))
self.assertEqual(u1.followed.count(),0)
self.assertEqual(u2.followers.count(),0)
def test_follow_posts(self):
u1=User(username='john',email='john@example.com')
u2=User(username='susan',email='susan@example.com')
u3=User(username='mary',email='mary@example.com')
u4=User(username='david',email='david@example.com')
db.session.add_all([u1,u2,u3,u4])
now=datetime.utcnow()
p1=Post(body='post from john',author=u1,timestamp=now+timedelta(seconds=1))
p2=Post(body='post from susan',author=u2,timestamp=now+timedelta(seconds=4))
p3=Post(body='Post from mary ',author=u3,timestamp=now+timedelta(seconds=3))
p4=Post(body='post from david ',author=u4,timestamp=now+timedelta(seconds=2))
db.session.add_all([p1,p2,p3,p4])
db.session.commit()
u1.follow(u2)
u1.follow(u4)
u2.follow(u3)
u3.follow(u4)
db.session.commit()
f1=u1.followed_posts().all()
f2=u2.followed_posts().all()
f3=u3.followed_posts().all()
f4=u4.followed_posts().all()
self.assertEqual(f1,[p2,p4,p1])
self.assertEqual(f2,[p2,p3])
self.assertEqual(f3,[p3,p4])
self.assertEqual(f4,[p4])
if __name__=='__main__':
unittest.main(verbosity=2)