def test_follow(self): u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') 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_post(self): u1 = User(nickname='john', email='*****@*****.**') u2 = User(nickname='susan', email='*****@*****.**') u3 = User(nickname='wjh', email='*****@*****.**') db.session.add(u1) db.session.add(u2) db.session.add(u3) import datetime nowtime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") p1 = Post(body='post from john', author=u1, timestamp=nowtime) p2 = Post(body='post from susan', author=u2, timestamp=nowtime) p3 = Post(body='post from wjh', author=u3, timestamp=nowtime) db.session.add(p1) db.session.add(p2) db.session.add(p3) db.session.commit() f1 = u1.follow(u2) f2 = u1.follow(u3) f3 = u2.follow(u1) f4 = u2.follow(u3) f5 = u3.follow(u1) f6 = u3.follow(u2) db.session.add(f1) db.session.add(f2) db.session.add(f3) db.session.add(f4) db.session.add(f5) db.session.add(f6) db.session.commit() # print(u1.followers.count()) # print(dir(u1.followed_users)) # print(u1.followed_users.all()) print(u1.followed_posts().all())
def test_follow(self): u1 = User(nickname='john', email='*****@*****.**') u2 = User(nickname='susan', email='*****@*****.**') db.session.add(u1) db.session.add(u2) db.session.commit() assert u1.unfollow(u2) == None u = u1.follow(u2) db.session.add(u) db.session.commit() assert u1.is_following(u2) assert u1.followed_users.count() == 1 assert u1.followed_users.first().nickname == 'susan' assert u2.followers.count() == 1 assert u2.followers.first().nickname == 'john' u = u1.unfollow(u2) assert u is u1 db.session.add(u) db.session.commit() assert not u1.is_following(u2) assert u1.followed_users.count() == 0 assert u2.followers.count() == 0
def test_follow_posts(self): # users creation u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') u3 = User(username='******', email='*****@*****.**') u4 = User(username='******', email='*****@*****.**') db.session.add_all([u1, u2, u3, u4]) # posts creation now = datetime.utcnow() # to adds secconds to appreciate desc sort 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=2)) 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=4)) db.session.add_all([p1, p2, p3, p4]) db.session.commit() # settup followers u1.follow(u2) u1.follow(u4) u2.follow(u3) u3.follow(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() # take in mind the desc sorting applied self.assertEqual(f1, [p4, p2, p1]) self.assertEqual(f2, [p3, p2]) self.assertEqual(f3, [p4, p3]) self.assertEqual(f4, [p4])
def test_follow_posts(self): # create four users u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') u3 = User(username='******', email='*****@*****.**') u4 = User(username='******', email='*****@*****.**') db.session.add_all([u1, u2, u3, u4]) # create four posts 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() # setup the followers u1.follow(u2) # john follows susan u1.follow(u4) # john follows david u2.follow(u3) # susan follows mary u3.follow(u4) # mary follows david 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() self.assertEqual(f1, [p2, p4, p1]) self.assertEqual(f2, [p2, p3]) self.assertEqual(f3, [p3, p4]) self.assertEqual(f4, [p4])