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)
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 {}
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)
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)