def test_update(self): url = reverse('committees:update', kwargs={ 'pk': self.committee.pk, 'url': get_current_account(self).url }) self.committee.chairman.add(self.admin.get_membership(self.account)) data = { 'name': self.committee.name, 'chairman': list(self.committee.chairman.all().values_list('id', flat=True)), 'members': list(self.committee.memberships.all().values_list('id', flat=True)), 'summary': self.committee.summary, 'description': self.committee.description, 'account': get_current_account(self) } user2 = UserFactory(accounts=[get_current_account(self)]) membership_user2 = user2.get_membership( account=get_current_account(self)) data['members'].append(membership_user2.id) response = self.client.post(url, data, follow=True) updated_committee_members = list( Committee.objects.get( id=self.committee.id).memberships.all().values_list('id', flat=True)) self.assertItemsEqual(updated_committee_members, data['members']) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Committee was changed successfully.')
def test_update_wrong(self): user = UserFactory(accounts=[self.account]) self.login_member(user.email) url = reverse('committees:update', kwargs={ 'pk': self.committee.pk, 'url': get_current_account(self).url }) data = { 'name': self.committee.name, 'chairman': self.committee.chairman.all(), 'members': list(self.committee.memberships.all().values_list('id', flat=True)), 'summary': self.committee.summary, 'description': self.committee.description, 'account': get_current_account(self) } user2 = UserFactory(accounts=[get_current_account(self)]) membership_user2 = user2.get_membership( account=get_current_account(self)) data['members'].append(membership_user2.id) response = self.client.post(url, data, follow=True) self.assertEqual(response.status_code, 403)
def test_delete_membership_forbidden(self): self.login_admin() new_acc = AccountFactory() new_member = UserFactory(accounts=[new_acc]) url = reverse('profiles:delete', kwargs={'pk': new_member.get_membership(new_acc).pk}) response = self.ajax(url) self.assertEqual( response.status_code, 404 ) # Currently this would be 404 as it'll simply be not found in queryset
class MembersListTest(TestCase): def setUp(self): pass def test_leader(self): self.create_init_data() self.login_admin() resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'Members') self.assertContains(resp, 'data-chairman="true"') self.assertContains( resp, 'data-chairman="true"', self.account.committees.filter( account=self.account).values('chairman').distinct().count()) def test_members_count(self): self.account = AccountFactory() self.admin = AdminFactory(accounts=[self.account]) self.login_admin() resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'class="member"', 1) UserFactory.create_batch(5, accounts=[self.account]) resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'class="member"', 6) self.account = AccountFactory() self.user = UserFactory(accounts=[self.account]) resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'class="member"', 6) self.client.logout() self.login_member() self.membership = self.user.get_membership(account=self.account) resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'class="member"', 1) self.assertNotContains(resp, 'data-chairman="true"') CommitteeFactory(chairman=self.membership) resp = self.client.get( reverse('board_members', kwargs={'url': self.account.url})) self.assertContains(resp, 'class="member"', 1) self.assertContains(resp, 'data-chairman="true"')
def test_dashboard_recent_save_committee_change(self): self.login_admin() url = reverse('committees:update', kwargs={ 'pk': self.committee.pk, 'url': self.account.url }) data = { 'name': self.committee.name, 'chairman': list(self.committee.chairman.all().values_list('id', flat=True)), 'members': list(self.committee.memberships.all().values_list('id', flat=True)), 'summary': self.committee.summary, 'description': self.committee.description, 'account': self.account } user2 = UserFactory(accounts=[self.account]) data['members'].append(user2.get_membership(account=self.account).id) mail.outbox = [] response = self.client.post(url, data, follow=True) updated_committee_members = list( Committee.objects.get( id=self.committee.id).memberships.all().values_list('id', flat=True)) self.assertItemsEqual(updated_committee_members, data['members']) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Committee was changed successfully.') self.assertTrue(len(RecentActivity.objects.all()) > 0) for item in RecentActivity.objects.all(): self.assertEqual(item.content_object.name, data['name']) self.assertEqual(item.content_object.account, data['account']) self.assertEqual(item.init_user, self.admin) self.assertEqual(item.action_flag, RecentActivity.CHANGE) self.assertEqual(len(mail.outbox), 0)
def create_membership(self, account=None, role=None, **kwargs): from profiles.factories import UserFactory account = account or self.account user = UserFactory(accounts=[account], accounts__role=role, **kwargs) return user, user.get_membership(account)