Пример #1
0
    def test_fires_removed_from_group_signal(self):
        """
        Test that removing a user to a group fires the correct django signal

        Signal test method found at
        https://stackoverflow.com/questions/3817213/
        """
        def remove_user_group_signal_receiver(**kwargs):
            """Demo signal for testing"""
            # pylint: disable=attribute-defined-outside-init
            self.remove_signal_group = kwargs['group']
            self.remove_signal_user = kwargs['user']

        # Attach our test signal
        group_member_removed.connect(remove_user_group_signal_receiver)

        group = self.create_group()
        user = self.create_user()
        user.add_to_group(group.pk)

        self.assertFalse(hasattr(self, 'remove_signal_group'))
        self.assertFalse(hasattr(self, 'remove_signal_user'))

        remove_user_from_group(user=user, group=group)

        self.assertEqual(self.remove_signal_group, group)
        self.assertEqual(self.remove_signal_user, user)

        group_member_removed.disconnect(
            receiver=remove_user_group_signal_receiver)
Пример #2
0
    def test_removes_owner(self):
        """Removing an owner from membership should remove their ownership."""
        self.group.owners.add(self.user)
        self.assertIn(self.user, self.group.owners.all())

        remove_user_from_group(self.user, self.group)
        self.assertNotIn(self.user, self.group.owners.all())
Пример #3
0
    def test_fires_removed_from_group_signal(self):
        """
        Test that removing a user to a group fires the correct django signal

        Signal test method found at
        https://stackoverflow.com/questions/3817213/
        """

        def remove_user_group_signal_receiver(**kwargs):
            """Demo signal for testing"""
            # pylint: disable=attribute-defined-outside-init
            self.remove_signal_group = kwargs["group"]
            self.remove_signal_user = kwargs["user"]

        # Attach our test signal
        group_member_removed.connect(remove_user_group_signal_receiver)

        group = self.create_group()
        user = self.create_user()
        user.add_to_group(group.pk)

        self.assertFalse(hasattr(self, "remove_signal_group"))
        self.assertFalse(hasattr(self, "remove_signal_user"))

        remove_user_from_group(user=user, group=group)

        self.assertEqual(self.remove_signal_group, group)
        self.assertEqual(self.remove_signal_user, user)

        group_member_removed.disconnect(receiver=remove_user_group_signal_receiver)
Пример #4
0
    def test_removes_owner(self):
        """Removing an owner from membership should remove their ownership."""
        self.group.owners.add(self.user)
        self.assertIn(self.user, self.group.owners.all())

        remove_user_from_group(self.user, self.group)
        self.assertNotIn(self.user, self.group.owners.all())
Пример #5
0
 def test_remove_user_from_group_removes_user(self):
     """Test removing a user from a group."""
     self.assertIn(self.group, self.user.groups_joined)
     remove_user_from_group(self.user.pk, self.group.pk)
     self.assertNotIn(self.group, self.user.groups_joined)
     self.assertFalse(
         Subscription.objects.filter(user=self.user,
                                     group=self.group).exists())
Пример #6
0
 def test_reactivates_deleted_userthreads(self):
     """Re-joining a group should reactivate old UserThreads."""
     user = self.thread.recipients.first()
     ut = UserThread.objects.get(user=user, thread=self.thread)
     ut_id = ut.pk
     remove_user_from_group(user, self.group)
     add_user_to_group.delay(user.pk, self.group.pk)
     self.assertTrue(UserThread.objects.filter(pk=ut_id).exists())
     self.assertEqual(UserThread.objects.filter(user=user, thread=self.thread).count(), 1)
Пример #7
0
 def test_reactivates_deleted_userthreads(self):
     """Re-joining a group should reactivate old UserThreads."""
     user = self.thread.recipients.first()
     ut = UserThread.objects.get(user=user, thread=self.thread)
     ut_id = ut.pk
     remove_user_from_group(user, self.group)
     add_user_to_group.delay(user.pk, self.group.pk)
     self.assertTrue(UserThread.objects.filter(pk=ut_id).exists())
     self.assertEqual(
         UserThread.objects.filter(user=user, thread=self.thread).count(),
         1)
Пример #8
0
    def test_does_not_remove_userthreads_for_other_groups(self):
        """Only delete UserThreads for the group a user is leaving."""
        # Create a new thread and add our user to the thread's group
        thread2 = self.create_thread()
        add_user_to_group(self.user.pk, thread2.group.pk)

        # Remove user from the group created in setup
        remove_user_from_group(self.user.pk, self.group.pk)

        # There should still be a userthread for the group created in this test
        # through thread2.
        self.assertTrue(UserThread.objects.filter(user=self.user, thread=thread2).exists())
Пример #9
0
    def test_does_not_remove_userthreads_for_other_groups(self):
        """Only delete UserThreads for the group a user is leaving."""
        # Create a new thread and add our user to the thread's group
        thread2 = self.create_thread()
        add_user_to_group(self.user.pk, thread2.group.pk)

        # Remove user from the group created in setup
        remove_user_from_group(self.user.pk, self.group.pk)

        # There should still be a userthread for the group created in this test
        # through thread2.
        self.assertTrue(
            UserThread.objects.filter(user=self.user, thread=thread2).exists())
Пример #10
0
    def test_user_removed_from_inactive_threads(self):
        """
        Test that a user removed from a group can no longer see threads they
        were not personally involved in.
        """
        user_threads = UserThread.objects.filter(user=self.user)
        uninvolved_thread = self.create_thread(group=self.group)
        self.assertTrue(user_threads.filter(thread=self.thread).exists())
        self.assertTrue(user_threads.filter(thread=uninvolved_thread).exists())

        remove_user_from_group(self.user, self.group)

        self.assertTrue(user_threads.filter(thread=self.thread).exists())
        self.assertFalse(user_threads.filter(thread=uninvolved_thread).exists())
Пример #11
0
    def test_user_removed_from_inactive_threads(self):
        """
        Test that a user removed from a group can no longer see threads they
        were not personally involved in.
        """
        user_threads = UserThread.objects.filter(user=self.user)
        uninvolved_thread = self.create_thread(group=self.group)
        self.assertTrue(user_threads.filter(thread=self.thread).exists())
        self.assertTrue(user_threads.filter(thread=uninvolved_thread).exists())

        remove_user_from_group(self.user, self.group)

        self.assertTrue(user_threads.filter(thread=self.thread).exists())
        self.assertFalse(
            user_threads.filter(thread=uninvolved_thread).exists())
Пример #12
0
 def remove_from_group(self, group):
     """Removes user from a group and handles existing threads/messages."""
     group_tasks.remove_user_from_group(user=self, group=group)
Пример #13
0
 def remove_from_group(self, group):
     """Removes user from a group and handles existing threads/messages."""
     group_tasks.remove_user_from_group(user=self, group=group)
Пример #14
0
 def test_remove_user_from_group_removes_user(self):
     """Test removing a user from a group."""
     self.assertIn(self.group, self.user.groups_joined)
     remove_user_from_group(self.user.pk, self.group.pk)
     self.assertNotIn(self.group, self.user.groups_joined)
     self.assertFalse(Subscription.objects.filter(user=self.user, group=self.group).exists())