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())
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'])