def test_filter_collecteddata_org_superuser(self): self.tola_user.user.is_staff = True self.tola_user.user.is_superuser = True self.tola_user.user.save() another_org = factories.Organization(name='Another Org') wkflvl1_1 = factories.WorkflowLevel1( organization=self.tola_user.organization) wkflvl1_2 = factories.WorkflowLevel1(organization=another_org) indicator1 = factories.Indicator(workflowlevel1=[wkflvl1_1]) indicator2 = factories.Indicator(workflowlevel1=[wkflvl1_2]) collecteddata1 = factories.CollectedData(data_uuid=111, indicator=indicator1) factories.CollectedData(data_uuid=222, indicator=indicator2) request = self.factory.get( '/api/collecteddata/?indicator__workflowlevel1__organization__id=%s' % self.tola_user.organization.pk) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['data_uuid'], str(collecteddata1.data_uuid))
def test_filter_collecteddata_indicator_org_admin(self): group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN) self.tola_user.user.groups.add(group_org_admin) wkflvl1_1 = factories.WorkflowLevel1() wkflvl1_2 = factories.WorkflowLevel1() WorkflowTeam.objects.create(workflow_user=self.tola_user, workflowlevel1=wkflvl1_1) WorkflowTeam.objects.create(workflow_user=self.tola_user, workflowlevel1=wkflvl1_2) indicator1 = factories.Indicator(workflowlevel1=[wkflvl1_1]) indicator2 = factories.Indicator(workflowlevel1=[wkflvl1_2]) collecteddata1 = factories.CollectedData(data_uuid=111, indicator=indicator1) factories.CollectedData(data_uuid=222, indicator=indicator2) request = self.factory.get('/api/collecteddata/?indicator=%s' % indicator1.pk) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['data_uuid'], str(collecteddata1.data_uuid))
def test_update_collecteddata_program_team(self): wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) WorkflowTeam.objects.create( workflow_user=self.tola_user, workflowlevel1=wflvl1, role=factories.Group(name=ROLE_PROGRAM_TEAM)) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.post('/api/collecteddata/') indicator_url = reverse('indicator-detail', kwargs={'pk': collecteddata.indicator.id}, request=request) data = { 'indicator': indicator_url, 'description': 'Intermediate Results' } request = self.factory.post('/api/collecteddata/', data) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'post': 'update'}) response = view(request, pk=collecteddata.pk) self.assertEqual(response.status_code, 200) collecteddata = CollectedData.objects.get(pk=response.data['id']) self.assertEquals(collecteddata.description, data['description'])
def test_delete_collecteddata_normal_user(self): collecteddata = factories.CollectedData() request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 403) CollectedData.objects.get(pk=collecteddata.pk)
def test_delete_collecteddata_diff_org_admin(self): group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN) self.tola_user.user.groups.add(group_org_admin) another_org = factories.Organization(name='Another Org') wflvl1 = factories.WorkflowLevel1(organization=another_org) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 403) CollectedData.objects.get(pk=collecteddata.pk)
def test_delete_collecteddata_view_only(self): wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) WorkflowTeam.objects.create(workflow_user=self.tola_user, workflowlevel1=wflvl1, role=factories.Group(name=ROLE_VIEW_ONLY)) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 403) CollectedData.objects.get(pk=collecteddata.pk)
def test_delete_collecteddata_superuser(self): self.tola_user.user.is_staff = True self.tola_user.user.is_superuser = True self.tola_user.user.save() collecteddata = factories.CollectedData() request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 204) self.assertRaises(CollectedData.DoesNotExist, CollectedData.objects.get, pk=collecteddata.pk)
def test_delete_collecteddata_diff_org(self): another_org = factories.Organization(name='Another Org') wflvl1 = factories.WorkflowLevel1(organization=another_org) WorkflowTeam.objects.create( workflow_user=self.tola_user, workflowlevel1=wflvl1, role=factories.Group(name=ROLE_PROGRAM_ADMIN)) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 403) CollectedData.objects.get(pk=collecteddata.pk)
def test_delete_collecteddata_org_admin(self): group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN) self.tola_user.user.groups.add(group_org_admin) wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 204) self.assertRaises(CollectedData.DoesNotExist, CollectedData.objects.get, pk=collecteddata.pk)
def test_list_collecteddata_normaluser(self): request = self.factory.get('/api/collecteddata/') wflvl1 = factories.WorkflowLevel1() WorkflowTeam.objects.create(workflow_user=self.tola_user, workflowlevel1=wflvl1) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 0) indicator = factories.Indicator(workflowlevel1=[wflvl1]) factories.CollectedData(workflowlevel1=wflvl1, indicator=indicator) view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1)
def test_delete_collecteddata_program_admin(self): wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) WorkflowTeam.objects.create( workflow_user=self.tola_user, workflowlevel1=wflvl1, role=factories.Group(name=ROLE_PROGRAM_ADMIN)) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.delete('/api/collecteddata/') request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'delete': 'destroy'}) response = view(request, pk=collecteddata.pk) self.assertEquals(response.status_code, 204) self.assertRaises(CollectedData.DoesNotExist, CollectedData.objects.get, pk=collecteddata.pk)
def test_list_collecteddata_program_team(self): request = self.factory.get('/api/collecteddata/') wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) WorkflowTeam.objects.create( workflow_user=self.tola_user, workflowlevel1=wflvl1, role=factories.Group(name=ROLE_PROGRAM_TEAM)) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 0) indicator = factories.Indicator(workflowlevel1=[wflvl1]) factories.CollectedData(workflowlevel1=wflvl1, indicator=indicator) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1)
def test_list_collecteddata_org_admin(self): request = self.factory.get('/api/collecteddata/') group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN) self.tola_user.user.groups.add(group_org_admin) wflvl1 = factories.WorkflowLevel1( organization=self.tola_user.organization) WorkflowTeam.objects.create(workflow_user=self.tola_user, workflowlevel1=wflvl1) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 0) indicator = factories.Indicator(workflowlevel1=[wflvl1]) factories.CollectedData(workflowlevel1=wflvl1, indicator=indicator) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1)
def test_update_collecteddata_diff_org_admin(self): group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN) self.tola_user.user.groups.add(group_org_admin) another_org = factories.Organization(name='Another Org') wflvl1 = factories.WorkflowLevel1(organization=another_org) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) request = self.factory.post('/api/collecteddata/') indicator_url = reverse('indicator-detail', kwargs={'pk': collecteddata.indicator.id}, request=request) data = { 'indicator': indicator_url, 'description': 'Intermediate Results' } request = self.factory.post('/api/collecteddata/', data) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'post': 'update'}) response = view(request, pk=collecteddata.pk) self.assertEqual(response.status_code, 403)
def test_update_collecteddata_superuser(self): self.tola_user.user.is_staff = True self.tola_user.user.is_superuser = True self.tola_user.user.save() request = self.factory.post('/api/collecteddata/') collecteddata = factories.CollectedData() indicator_url = reverse('indicator-detail', kwargs={'pk': collecteddata.indicator.id}, request=request) data = { 'indicator': indicator_url, 'description': 'Intermediate Results' } request = self.factory.post('/api/collecteddata/', data) request.user = self.tola_user.user view = CollectedDataViewSet.as_view({'post': 'update'}) response = view(request, pk=collecteddata.pk) self.assertEqual(response.status_code, 200) collecteddata = CollectedData.objects.get(pk=response.data['id']) self.assertEquals(collecteddata.description, data['description'])
def test_create_and_delete_collecteddata(self): org = Organization.objects.create( organization_uuid="index-collecteddata-test") wflvl1 = factories.WorkflowLevel1(organization=org) collecteddata = factories.CollectedData(workflowlevel1=wflvl1) self.indexer.delete_collecteddata(collecteddata)