def test_user_unfollow(self): user1 = self.make_user() user2 = self.make_user() self.follow(user2, user1) self.assertTrue(Follower.get({u'follower': user2[u'username'], u'followee': user1[u'username']}) is not None, 'user2 following user1') response = self.post('/users/%s/followers/' % user1[u'username'], {'follow': False}, auth_user=user2) self.assertEqual(response.status, 200, 'unfollow returned 200') self.assertTrue(Follower.get({u'follower': user2[u'username'], u'followee': user1[u'username']}) is None, 'user2 is not following user1')
def get(self, username): u = User.get({u'username': username}) if u is None: raise HTTPError(404) cur_user = self.get_session()[u'username'] follower = Follower.get({u'follower': username, u'followee': cur_user}) following = Follower.get({u'follower': cur_user, u'followee': username}) self.output({ u'username': u['username'], u'created': u[u'created'], u'id': u[u'id'], u'follower': (follower is not None), u'following': (following is not None), })
def post(self, username): follow = self.body_dict().get(u'follow') if follow is None: raise HTTPError(403) follower = Follower.get({u'follower': self.get_user()[u'username'], u'followee': username}) if follow and follower is None: Follower(**{u'follower': self.get_user()[u'username'], u'followee': username}).save() notifications.send(username, {u'type': u'follow', u'username': self.get_user()[u'username']}) elif not follow and follower is not None: follower.delete()