コード例 #1
0
    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))
コード例 #2
0
    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))
コード例 #3
0
    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'])
コード例 #4
0
 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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    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)
コード例 #12
0
    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)
コード例 #13
0
    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)
コード例 #14
0
    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)
コード例 #15
0
    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'])
コード例 #16
0
ファイル: test_utils.py プロジェクト: ybekdemir/TolaActivity
 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)