def test_follow_posts(self): # make four users u1 = Users(username='******', email='*****@*****.**', password = '******') u2 = Users(username='******', email='*****@*****.**', password = '******') u3 = Users(username='******', email='*****@*****.**', password = '******') u4 = Users(username='******', email='*****@*****.**', password = '******') 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]
def test_follow(self): user1 = Users(username='******') user2 = Users(username='******') db.session.add_all([user1, user2]) db.session.commit() self.assertEqual(user1.followed.all(), []) self.assertEqual(user2.followed.all(), []) user1.follow(user2) db.session.commit() self.assertEqual(user1.followed.all(), [user2]) self.assertTrue(user1.is_following(user2)) self.assertEqual(user1.followed.first().username, 'Darcia') self.assertEqual(user1.followed.count(), 1) self.assertEqual(user2.followers.count(), 1) self.assertEqual(user2.followers.first().username, 'Tylor') user1.unfollow(user2) db.session.commit() self.assertFalse(user1.is_following(user2)) self.assertEqual(user1.followed.count(), 0) self.assertEqual(user2.followers.count(), 0)
def test_follow(self): u1 = Users(username='******', email='*****@*****.**') u2 = Users(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(self): # create a friend u1 = Users(username='******', email='*****@*****.**', password= '******') u2 = Users(username='******', email='*****@*****.**', password = '******') 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.follow(u2) == None assert u1.is_following(u2) assert u1.followed.count() == 1 assert u1.followed.first().username == 'susan' assert u2.followers.count() == 1 assert u2.followers.first().username == 'john' u = u1.unfollow(u2) assert u != None db.session.add(u) db.session.commit() assert u1.is_following(u2) == False assert u1.followed.count() == 0 assert u2.followers.count() == 0
def test_follow_posts(self): # create four users u1 = Users(username='******', email='*****@*****.**') u2 = Users(username='******', email='*****@*****.**') u3 = Users(username='******', email='*****@*****.**') u4 = Users(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])
def test_shown_followed_posts(self): user1 = Users(username='******') user2 = Users(username='******') user3 = Users(username='******') user4 = Users(username='******') db.session.add_all([user1, user2, user3, user4]) now = datetime.utcnow() status1 = Status(body='Status from Tylor', author=user1, timestamp=now + timedelta(seconds=1)) status2 = Status(body='Status from Darcia', author=user2, timestamp=now + timedelta(seconds=2)) status3 = Status(body='Status from Elijah', author=user3, timestamp=now + timedelta(seconds=3)) status4 = Status(body='Status from Everett', author=user4, timestamp=now + timedelta(seconds=4)) db.session.add_all([status1, status2, status3, status4]) db.session.commit() user1.follow(user2) user1.follow(user3) user2.follow(user1) user3.follow(user4) db.session.commit() result1 = user1.related_posts().all() result2 = user2.related_posts().all() result3 = user3.related_posts().all() result4 = user4.related_posts().all() self.asserEqual(result1, [status2, status3, status1]) self.asserEqual(result2, [status1, status2]) self.asserEqual(result3, [status4, status3]) self.asserEqual(result4, [status4])