def test_follows(self): u1 = User('test1') u1.email = '*****@*****.**' u1.password = '******' u2 = User('test2') u2.email = '*****@*****.**' u2.password = '******' db.session.add(u1) db.session.add(u2) db.session.commit() self.assertFalse(u1.is_following(u2)) self.assertFalse(u1.is_followed_by(u2)) timestamp_before = datetime.datetime.utcnow() u1.follow(u2) db.session.add(u1) db.session.commit() timestamp_after = datetime.datetime.utcnow() self.assertTrue(u1.is_following(u2)) self.assertFalse(u1.is_followed_by(u2)) self.assertTrue(u2.is_followed_by(u1)) self.assertTrue(u1.followings.count() == 1) self.assertTrue(u2.followers.count() == 1) f = u1.followings.all()[-1] self.assertTrue(f.following == u2) self.assertTrue(timestamp_before <= f.timestamp <= timestamp_after) f = u2.followers.all()[-1] self.assertTrue(f.follower == u1) u1.unfollow(u2) db.session.add(u1) db.session.commit() self.assertTrue(u1.followings.count() == 0) self.assertTrue(u2.followers.count() == 0) self.assertTrue(Follow.query.count() == 0) u2.follow(u1) db.session.add(u1) db.session.add(u2) db.session.commit() db.session.delete(u2) db.session.commit() self.assertTrue(Follow.query.count() == 0)
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(self): mohamed = User(username='******', email='*****@*****.**') wamda = User(username='******', email='*****@*****.**') db.session.add(mohamed) db.session.add(wamda) db.session.commit() self.assertEqual(mohamed.followed.all(), []) self.assertEqual(mohamed.followers.all(), []) mohamed.follow(wamda) db.session.commit() self.assertTrue(mohamed.is_following(wamda)) self.assertEqual(mohamed.followed.count(), 1) self.assertEqual(mohamed.followed.first().username, 'wamda') self.assertEqual(wamda.followers.count(), 1) self.assertEqual(wamda.followers.first().username, 'mohamed') mohamed.unfollow(wamda) db.session.commit() self.assertFalse(mohamed.is_following(wamda)) self.assertEqual(mohamed.followed.count(), 0) self.assertEqual(wamda.followers.count(), 0)
def test_follow_posts(self): # create four users mohamed = User(username='******', email='*****@*****.**') wamda = User(username='******', email='*****@*****.**') ragda = User(username='******', email='*****@*****.**') abdeen = User(username='******', email='*****@*****.**') db.session.add_all([mohamed, wamda, ragda, abdeen]) # create four posts now = datetime.utcnow() p1 = Post(title="Mohamed post's title", content="post from mohamed", author=mohamed, date_posted=now + timedelta(seconds=1)) p2 = Post(title="Wamda post's title", content="post from wamda", author=wamda, date_posted=now + timedelta(seconds=4)) p3 = Post(title="Ragda post's title", content="post from ragda", author=ragda, date_posted=now + timedelta(seconds=3)) p4 = Post(title="Abdeen post's title", content="post from abdeen", author=abdeen, date_posted=now + timedelta(seconds=2)) db.session.add_all([p1, p2, p3, p4]) db.session.commit() # setup the followers mohamed.follow(wamda) # mohamed follows wamda mohamed.follow(abdeen) # mohamed follows abdeen wamda.follow(ragda) # wamda follows ragda ragda.follow(abdeen) # ragda follows abdeen db.session.commit() # check the followed posts of each user f1 = mohamed.followed_posts().all() f2 = wamda.followed_posts().all() f3 = ragda.followed_posts().all() f4 = abdeen.followed_posts().all() self.assertEqual(f1, [p2, p4]) self.assertEqual(f2, [p3]) self.assertEqual(f3, [p4]) self.assertEqual(f4, [])
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])