def test_unsubscribe_from_applications(self):
     application = ApplicationFactory(group=self.group, user=UserFactory())
     participant = application.conversation.conversationparticipant_set.filter(
         user=self.user)
     self.assertFalse(participant.get().muted)
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertTrue(participant.get().muted)
 def test_unsubscribe_from_pickup_conversation(self):
     pickup = PickupDateFactory(place=self.place, collectors=[self.user])
     participant = pickup.conversation.conversationparticipant_set.filter(
         user=self.user)
     self.assertFalse(participant.get().muted)
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertTrue(participant.get().muted)
示例#3
0
    def create(self, validated_data):
        token_data = validated_data.get('token')

        user = token_data['user']
        choice = validated_data.get('choice')

        if choice == 'conversation':
            if 'conversation' not in token_data:
                raise serializers.ValidationError()
            unsubscribe_from_conversation(user, token_data['conversation'])

        elif choice == 'thread':
            if 'thread' not in token_data:
                raise serializers.ValidationError()
            unsubscribe_from_thread(user, token_data['thread'])

        elif choice == 'notification_type':
            if 'group' not in token_data:
                raise serializers.ValidationError()
            elif 'notification_type' not in token_data:
                raise serializers.ValidationError()
            unsubscribe_from_notification_type(user, token_data['group'],
                                               token_data['notification_type'])

        elif choice == 'group':
            if 'group' not in token_data:
                raise serializers.ValidationError()
            unsubscribe_from_all_conversations_in_group(
                user, token_data['group'])

        return {}
示例#4
0
 def test_unsubscribe_from_activity_conversation(self):
     activity = ActivityFactory(place=self.place, participants=[self.user])
     participant = activity.conversation.conversationparticipant_set.filter(
         user=self.user)
     self.assertFalse(participant.get().muted)
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertTrue(participant.get().muted)
 def test_unsubscribe_from_all_group_notifications(self):
     membership = self.group.groupmembership_set.filter(user=self.user)
     self.assertEqual(membership.get().notification_types, [
         'weekly_summary',
         'daily_pickup_notification',
         'new_application',
     ])
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertEqual(membership.get().notification_types, [])
 def test_unsubscribe_from_group_wall_thread(self):
     thread = self.group.conversation.messages.create(author=self.user,
                                                      content='foo')
     self.group.conversation.messages.create(author=self.user,
                                             content='foo reply',
                                             thread=thread)
     participant = thread.participants.filter(user=self.user)
     self.assertFalse(participant.get().muted)
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertTrue(participant.get().muted)
示例#7
0
    def create(self, validated_data):
        user = self.context['request'].user
        choice = validated_data.get('choice')

        if choice == 'group':
            if 'group' not in validated_data:
                raise serializers.ValidationError()
            count = unsubscribe_from_all_conversations_in_group(
                user, validated_data['group'])
            return count

        return {}
 def test_does_not_unsubscribe_from_other_group_wall(self):
     participant = self.other_group.conversation.conversationparticipant_set.filter(
         user=self.user)
     self.assertFalse(participant.get().muted)
     unsubscribe_from_all_conversations_in_group(self.user, self.group)
     self.assertFalse(participant.get().muted)