Exemplo n.º 1
0
    def test_get_following_user_id_set(self):
        FriendshipService.invalidate_following_cache(
            from_user_id=self.user2.id)
        user_id_set_2 = FriendshipService.get_following_user_id_set(
            self.user2.id)
        self.assertEqual(user_id_set_2, {self.user1.id, self.user3.id})
        user_id_set_1 = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set_1, {self.user2.id})

        Friendship.objects.filter(
            from_user=self.user2,
            to_user=self.user3,
        ).delete()
        Friendship.objects.filter(
            from_user=self.user1,
            to_user=self.user2,
        ).delete()
        # mannually clear the cache
        FriendshipService.invalidate_following_cache(
            from_user_id=self.user2.id)
        user_id_set_2 = FriendshipService.get_following_user_id_set(
            self.user2.id)
        self.assertEqual(user_id_set_2, {self.user1.id})
        # cache automatically cleared in delete() by listener
        user_id_set_1 = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(len(user_id_set_1), 0)
        # cache automatically cleared in create() by listener
        Friendship.objects.create(from_user=self.user1, to_user=self.user3)
        user_id_set_1 = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set_1, {self.user3.id})
Exemplo n.º 2
0
    def test_get_followings(self):
        user1 = self.create_user('user1')
        user2 = self.create_user('user2')
        for to_user in [user1, user2, self.alex]:
            self.create_friendship(from_user=self.bob, to_user=to_user)
        user_id_set = FriendshipService.get_following_user_id_set(self.bob.id)
        self.assertEqual(user_id_set, {user1.id, user2.id, self.alex.id})

        FriendshipService.unfollow(self.bob.id, self.alex.id)
        user_id_set = FriendshipService.get_following_user_id_set(self.bob.id)
        self.assertEqual(user_id_set, {user1.id, user2.id})
Exemplo n.º 3
0
    def test_get_following(self):
        user1 = self.create_user('user1')
        user2 = self.create_user('user2')
        for to_user in [user1, user2, self.ming]:
            self.create_friendship(self.rui, to_user)

        user_id_set = FriendshipService.get_following_user_id_set(self.rui.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id, self.ming.id})

        FriendshipService.unfollow(self.rui.id, self.ming.id)
        user_id_set = FriendshipService.get_following_user_id_set(self.rui.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id})
Exemplo n.º 4
0
    def test_get_followings(self):
        user1 = self.create_user('user1')
        user2 = self.create_user('user2')
        for to_user in [user1, user2, self.lux]:
            Friendship.objects.create(from_user=self.ray, to_user=to_user)

        user_id_set = FriendshipService.get_following_user_id_set(self.ray.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id, self.lux.id})

        Friendship.objects.filter(from_user=self.ray,
                                  to_user=self.lux).delete()
        user_id_set = FriendshipService.get_following_user_id_set(self.ray.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id})
Exemplo n.º 5
0
    def test_get_followings(self):
        user3 = self.create_user('user3')
        user4 = self.create_user('user4')
        for to_user in [self.user2, user3, user4]:
            Friendship.objects.create(to_user=to_user, from_user=self.user1)
        user_id_set = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set, {self.user2.id, user3.id, user4.id})

        Friendship.objects.filter(to_user=self.user2,
                                  from_user=self.user1).delete()
        user_id_set = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set, {user3.id, user4.id})
Exemplo n.º 6
0
    def test_get_followings(self):
        user1 = self.create_user('user1')
        user2 = self.create_user('user2')
        for to_user in [user1, user2, self.dongxie]:
            self.create_friendship(from_user=self.linghu, to_user=to_user)
        FriendshipService.invalidate_following_cache(self.linghu.id)

        user_id_set = FriendshipService.get_following_user_id_set(self.linghu.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id, self.dongxie.id})

        FriendshipService.unfollow(self.linghu.id, self.dongxie.id)
        FriendshipService.invalidate_following_cache(self.linghu.id)
        user_id_set = FriendshipService.get_following_user_id_set(self.linghu.id)
        self.assertSetEqual(user_id_set, {user1.id, user2.id})
Exemplo n.º 7
0
    def test_get_followings(self):
        user3 = self.create_user('user3')
        user4 = self.create_user('user4')
        for to_user in [user3, user4, self.user2]:
            Friendship.objects.create(from_user=self.user1, to_user=to_user)
        # FriendshipService.invalidate_following_cache(from_user_id=self.user1.id)

        user_id_set = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set, {user3.id, user4.id, self.user2.id})

        Friendship.objects.filter(from_user=self.user1.id,
                                  to_user=self.user2.id).delete()
        # FriendshipService.invalidate_following_cache(from_user_id=self.user1.id)
        user_id_set = FriendshipService.get_following_user_id_set(
            self.user1.id)
        self.assertEqual(user_id_set, {user3.id, user4.id})
Exemplo n.º 8
0
 def following_user_id_set(self: serializers.ModelSerializer):
     if self.context['request'].user.is_anonymous:
         return {}
     if hasattr(self, '_cached_following_user_id_set'):
         return self._cached_following_user_id_set
     user_id_set = FriendshipService.get_following_user_id_set(
         self.context['request'].user.id)
     setattr(self, '_cached_following_user_id_set', user_id_set)
     return user_id_set
Exemplo n.º 9
0
 def _get_following_user_id_set(self):
     # return empty set for anonymous client
     if self.context['request'].user.is_anonymous:
         return {}
     if hasattr(self, '_cached_following_user_id_set'):
         return self._cached_following_user_id_set
     user_id_set = FriendshipService.get_following_user_id_set(
         from_user_id=self.context['request'].user.id)
     setattr(self, '_cached_following_user_id_set', user_id_set)
     return user_id_set
Exemplo n.º 10
0
 def _get_following_user_id_set(self):
     if self.context['request'].user.is_anonymous:
         return ()
     if hasattr(self, '_cached_following_user_id_set'):
         return self._cached_following_user_id_set
     user_id_set = FriendshipService.get_following_user_id_set(
         self.context['request'].user.id,
     )
     setattr(self, '_cached_following_user_id_set', user_id_set)
     return user_id_set