Example #1
0
    def test_remove_trust_when_giver_leaves_group(self):
        editor = UserFactory()
        newcomer = UserFactory()
        group = GroupFactory(members=[editor], newcomers=[newcomer])
        membership = GroupMembership.objects.get(user=newcomer, group=group)
        Trust.objects.create(membership=membership, given_by=editor)

        group.remove_member(editor)

        self.assertEqual(0,
                         Trust.objects.filter(membership=membership).count())
Example #2
0
class GroupMembershipReceiverTests(WSTestCase):
    def setUp(self):
        super().setUp()
        self.member = UserFactory()
        self.user = UserFactory()
        self.group = GroupFactory(members=[self.member])

    def test_receive_group_join_as_member(self):
        self.client = self.connect_as(self.member)

        self.group.add_member(self.user)

        response = self.client.messages_by_topic.get('groups:group_detail')[0]
        self.assertIn(self.user.id, response['payload']['members'])
        self.assertIn(self.user.id, response['payload']['memberships'].keys())

        response = self.client.messages_by_topic.get('groups:group_preview')[0]
        self.assertIn(self.user.id, response['payload']['members'])
        self.assertNotIn('memberships', response['payload'])

    def test_receive_group_join_as_joining_user(self):
        self.client = self.connect_as(self.user)

        self.group.add_member(self.user)

        response = self.client.messages_by_topic.get('groups:group_detail')[0]
        self.assertIn(self.user.id, response['payload']['members'])
        self.assertIn(self.user.id, response['payload']['memberships'].keys())

        response = self.client.messages_by_topic.get('groups:group_preview')[0]
        self.assertIn(self.user.id, response['payload']['members'])
        self.assertNotIn('memberships', response['payload'])

    def test_receive_group_join_as_nonmember(self):
        self.client = self.connect_as(self.user)

        join_user = UserFactory()
        self.group.add_member(join_user)

        self.assertNotIn('groups:group_detail',
                         self.client.messages_by_topic.keys())
        response = self.client.messages_by_topic.get('groups:group_preview')[0]
        self.assertIn(join_user.id, response['payload']['members'])
        self.assertNotIn('memberships', response['payload'])

    def test_receive_group_leave_as_leaving_user(self):
        self.client = self.connect_as(self.member)

        self.group.remove_member(self.member)

        response = self.client.messages_by_topic.get('groups:group_preview')[0]
        self.assertNotIn(self.user.id, response['payload']['members'])
        self.assertNotIn('memberships', response['payload'])