Пример #1
0
    def test_create_workflowlevel2_uuid_is_self_generated(self):
        wflvl1 = factories.WorkflowLevel1(organization=self.core_user.organization)
        group_wf_team = factories.CoreGroup(name='WF Team',
                                            permissions=PERMISSIONS_WORKFLOW_TEAM,
                                            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_team)
        wflvl1.core_groups.add(group_wf_team)

        data = {
            'name': 'Save the Children',
            'workflowlevel1': wflvl1.pk}

        request = self.factory.post(reverse('workflowlevel2-list'), data)
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertTrue(uuid.UUID(response.data['level2_uuid']))
Пример #2
0
    def test_save_budget_value_from_wfl2_create(self):
        """
        When a budget is created, the related wfl2s total_estimated_budget
        should be updated
        """

        wflvl1 = factories.WorkflowLevel1(name='WorkflowLevel1',
                                          organization=self.organization)
        wflvl2 = factories.WorkflowLevel2(name='WorkflowLevel2',
                                          workflowlevel1=wflvl1,
                                          total_estimated_budget=0,
                                          actual_cost=0)
        factories.Budget(proposed_value=100,
                         actual_value=10,
                         workflowlevel2=wflvl2)

        wflvl2 = WorkflowLevel2.objects.get(pk=wflvl2.pk)
        self.assertEqual(wflvl2.total_estimated_budget, 100.00)
        self.assertEqual(wflvl2.actual_cost, 10.00)
Пример #3
0
    def test_update_customform_superuser_minimal(self):
        self.hikaya_user.user.is_staff = True
        self.hikaya_user.user.is_superuser = True
        self.hikaya_user.user.save()

        wflvl1 = factories.WorkflowLevel1(
            organization=self.hikaya_user.organization)
        silo = factories.Silo(workflowlevel1=[wflvl1],
                              owner=self.hikaya_user.user,
                              public=False)
        fields = [{
            'name': 'name',
            'type': 'text'
        }, {
            'name': 'age',
            'type': 'number'
        }, {
            'name': 'city',
            'type': 'text'
        }]

        form_uuid = uuid.uuid4()
        data = {
            'name': 'CustomForm Test',
            'fields': json.dumps(fields),
            'level1_uuid': wflvl1.level1_uuid,
            'hikaya_user_uuid': self.hikaya_user.hikaya_user_uuid,
            'form_uuid': form_uuid
        }

        request = self.factory.post('api/customform', data=data)
        request.user = self.hikaya_user.user
        view = CustomFormViewSet.as_view({'post': 'update'})
        response = view(request, pk=silo.pk)

        self.assertEqual(response.status_code, 200)

        silo = Silo.objects.get(pk=response.data['id'])
        self.assertEquals(
            silo.name, 'customform_test_health_and_survival'
            '_for_syrians_in_affected_regions')
        self.assertEqual(silo.data_count, 0)
Пример #4
0
    def test_list_workflowlevel2_program_team(self):
        request = self.factory.get(reverse('workflowlevel2-list'))
        wflvl1 = factories.WorkflowLevel1(organization=self.core_user.organization)

        group_wf_team = factories.CoreGroup(name='WF Team',
                                            permissions=PERMISSIONS_WORKFLOW_TEAM,
                                            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_team)
        wflvl1.core_groups.add(group_wf_team)

        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 0)

        factories.WorkflowLevel2(workflowlevel1=wflvl1)
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 1)
Пример #5
0
    def test_list_workflowlevel2_view_only(self):
        request = self.factory.get('/api/workflowlevel2/')
        wflvl1 = factories.WorkflowLevel1(organization=self.core_user.organization)

        group_wf_team = factories.CoreGroup(name='WF View Only',
                                             permissions=PERMISSIONS_VIEW_ONLY,
                                             organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_team)
        wflvl1.core_groups.add(group_wf_team)

        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 0)

        factories.WorkflowLevel2(workflowlevel1=wflvl1)
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 1)
Пример #6
0
    def test_create_objective_org_admin(self):
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        request = self.factory.post('/api/objective/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail', kwargs={'pk': wflvl1.id},
                             request=request)

        data = {'name': 'Macht Deutschland wieder gesund',
                'workflowlevel1': wflvl1_url}
        request = self.factory.post('/api/objective/', data)
        request.user = self.tola_user.user
        view = ObjectiveViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['name'],
                         u'Macht Deutschland wieder gesund')
    def test_create_documentation_org_admin(self):
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        request = self.factory.post('/api/documentation/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)

        data = {'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/documentation/', data)
        request.user = self.tola_user.user
        view = DocumentationViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['workflowlevel1'], wflvl1_url)
Пример #8
0
    def test_update_workflowlevel1_org_admin(self):
        group_org_admin = factories.CoreGroup(
            name='Org Admin',
            is_org_level=True,
            permissions=PERMISSIONS_ORG_ADMIN,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_org_admin)

        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        data = {'name': 'Save the Lennons'}
        request = self.factory.put(
            reverse('workflowlevel1-detail', args=(wflvl1.pk, )), data)
        request.user = self.core_user
        view = WorkflowLevel1ViewSet.as_view({'put': 'update'})
        response = view(request, pk=wflvl1.pk)
        self.assertEqual(response.status_code, 200)

        wflvl1 = WorkflowLevel1.objects.get(pk=response.data['id'])
        self.assertEqual(wflvl1.name, data['name'])
Пример #9
0
    def test_update_level_program_admin_json(self):
        wflvl1 = factories.WorkflowLevel1()
        WorkflowTeam.objects.create(
            workflow_user=self.tola_user,
            workflowlevel1=wflvl1,
            role=factories.Group(name=ROLE_PROGRAM_ADMIN))
        level = factories.Level(organization=self.tola_user.organization,
                                workflowlevel1=wflvl1)

        data = {'name': 'Goal'}
        request = self.factory.post('/api/level/',
                                    json.dumps(data),
                                    content_type='application/json')
        request.user = self.tola_user.user
        view = LevelViewSet.as_view({'post': 'update'})
        response = view(request, pk=level.pk)
        self.assertEqual(response.status_code, 200)

        level = Level.objects.get(pk=response.data['id'])
        self.assertEquals(level.name, data['name'])
    def test_create_workflowlevel2_program_team(self):
        request = self.factory.post(reverse('workflowlevel2-list'))
        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        group_wf_team = factories.CoreGroup(
            name='WF Team',
            permissions=PERMISSIONS_WORKFLOW_TEAM,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_team)
        wflvl1.core_groups.add(group_wf_team)

        data = {'name': 'Help Syrians', 'workflowlevel1': wflvl1.pk}

        request = self.factory.post(reverse('workflowlevel2-list'), data)
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['name'], u'Help Syrians')
Пример #11
0
    def test_list_workflowlevel1_superuser_and_org_admin(self):
        wflvl1 = factories.WorkflowLevel1()
        wflvl2 = factories.WorkflowLevel2(workflowlevel1=wflvl1)
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        self.tola_user.user.is_staff = True
        self.tola_user.user.is_superuser = True
        self.tola_user.user.save()

        request = self.factory.get('/api/workflowlevel1/')
        request.user = self.tola_user.user
        view = WorkflowLevel1ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 1)
        self.assertEqual(response.data[0]['name'], wflvl1.name)
        self.assertEqual(response.data[0]['budget'],
                         wflvl2.total_estimated_budget)
        self.assertEqual(response.data[0]['actuals'], wflvl2.actual_cost)
    def test_list_workflowlevel2_org_admin(self):
        request = self.factory.get('/api/workflowlevel2/')
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        wflvl1 = factories.WorkflowLevel1()
        WorkflowTeam.objects.create(workflow_user=self.tola_user,
                                    workflowlevel1=wflvl1)
        factories.WorkflowLevel2(workflowlevel1=wflvl1)
        request.user = self.tola_user.user
        view = WorkflowLevel2ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 0)

        wflvl1.organization = self.tola_user.organization
        wflvl1.save()
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 1)
    def test_create_workflowlevel2_view_only(self):
        request = self.factory.post(reverse('workflowlevel2-list'))
        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)

        group_wf_team = factories.CoreGroup(
            name='WF View Only',
            permissions=PERMISSIONS_VIEW_ONLY,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_team)
        wflvl1.core_groups.add(group_wf_team)

        data = {'name': 'Help Syrians', 'workflowlevel1': wflvl1.pk}

        request = self.factory.post(reverse('workflowlevel2-list'), data)
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 403)
Пример #14
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)
    def test_delete_workflowlevel2_org_admin(self):
        group_org_admin = factories.CoreGroup(
            name='Org Admin',
            is_org_level=True,
            permissions=PERMISSIONS_ORG_ADMIN,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_org_admin)

        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        workflowlevel2 = factories.WorkflowLevel2(workflowlevel1=wflvl1)

        request = self.factory.delete(reverse('workflowlevel2-list'))
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'delete': 'destroy'})
        response = view(request, pk=str(workflowlevel2.pk))
        self.assertEqual(response.status_code, 204)
        self.assertRaises(WorkflowLevel2.DoesNotExist,
                          WorkflowLevel2.objects.get,
                          pk=str(workflowlevel2.pk))
Пример #16
0
    def test_filter_contact_stakeholder_org_admin(self):
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        wkflvl1 = factories.WorkflowLevel1()
        WorkflowTeam.objects.create(workflow_user=self.tola_user,
                                    workflowlevel1=wkflvl1)
        contact1 = factories.Contact(name='John',
                                     organization=self.tola_user.organization,
                                     workflowlevel1=wkflvl1)
        factories.Contact(name='Paul',
                          organization=self.tola_user.organization,
                          workflowlevel1=wkflvl1)
        request = self.factory.get('/api/contact/?name=%s' % contact1.name)
        request.user = self.tola_user.user
        view = ContactViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 1)
        self.assertEqual(response.data[0]['name'], contact1.name)
Пример #17
0
    def test_create_level_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/level/')
        wflvl1 = factories.WorkflowLevel1()
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)

        data = {'name': 'Goal', 'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/level/', data)
        request.user = self.tola_user.user
        view = LevelViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['name'], u'Goal')
Пример #18
0
    def test_create_customform_tolauser_not_found(self):
        self.tola_user.user.is_staff = True
        self.tola_user.user.is_superuser = True
        self.tola_user.user.save()

        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        fields = [
            {
                'name': 'name',
                'type': 'text'
            },
            {
                'name': 'age',
                'type': 'number'
            },
            {
                'name': 'city',
                'type': 'text'
            }
        ]

        tola_user_uuid = uuid.uuid4()
        form_uuid = uuid.uuid4()
        data = {
            'name': 'CustomForm Test',
            'description': 'This is a test.',
            'fields': json.dumps(fields),
            'level1_uuid': wflvl1.level1_uuid,
            'tola_user_uuid': tola_user_uuid,
            'form_uuid': form_uuid
        }

        request = self.factory.post('api/customform', data=data)
        request.user = self.tola_user.user
        view = CustomFormViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.data,
                         'TolaUser matching query does not exist.')
    def test_filter_workflowlevel2_status_org_admin(self):
        group_org_admin = factories.CoreGroup(
            name='Org Admin',
            is_org_level=True,
            permissions=PERMISSIONS_ORG_ADMIN,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_org_admin)

        wkflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        wfl_status1 = factories.WorkflowLevelStatus(name="Started Test Status",
                                                    short_name="started")
        wfl_status2 = factories.WorkflowLevelStatus(
            name="Finished Test Status", short_name="finished")
        wkflvl2_1 = factories.WorkflowLevel2(name='Started brief survey',
                                             workflowlevel1=wkflvl1,
                                             status=wfl_status1)
        wkflvl2_2 = factories.WorkflowLevel2(name='Finished brief survey',
                                             workflowlevel1=wkflvl1,
                                             status=wfl_status2)

        # filter by status.uuid
        request = self.factory.get(
            f"{reverse('workflowlevel2-list')}?status__uuid={str(wfl_status1.pk)}"
        )
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 1)
        self.assertEqual(response.data['results'][0]['name'], wkflvl2_1.name)

        # filter by status.short_name
        request = self.factory.get(
            f"{reverse('workflowlevel2-list')}?status__short_name=finished")
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'get': 'list'})
        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data['results']), 1)
        self.assertEqual(response.data['results'][0]['name'], wkflvl2_2.name)
    def test_delete_workflowlevel2_program_admin(self):
        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        workflowlevel2 = factories.WorkflowLevel2(workflowlevel1=wflvl1)
        group_wf_admin = factories.CoreGroup(
            name='WF Admin',
            permissions=PERMISSIONS_WORKFLOW_ADMIN,
            organization=self.core_user.organization)
        self.core_user.core_groups.add(group_wf_admin)
        wflvl1.core_groups.add(group_wf_admin)

        request = self.factory.delete(reverse('workflowlevel2-list'))
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'delete': 'destroy'})
        response = view(request, pk=str(workflowlevel2.pk))
        print('------ response')
        print(response.data)
        self.assertEqual(response.status_code, 204)
        self.assertRaises(WorkflowLevel2.DoesNotExist,
                          WorkflowLevel2.objects.get,
                          pk=str(workflowlevel2.pk))
Пример #21
0
    def test_update_workflowlevel2_diff_org_admin(self):
        group_org_admin = factories.CoreGroup(name='Org Admin', is_org_level=True,
                                              permissions=PERMISSIONS_ORG_ADMIN,
                                              organization=self.core_user.organization)
        self.core_user.core_groups.add(group_org_admin)

        request = self.factory.post(reverse('workflowlevel2-list'))
        another_org = factories.Organization(name='Another Org')
        wflvl1 = factories.WorkflowLevel1(organization=another_org)
        workflowlevel2 = factories.WorkflowLevel2(workflowlevel1=wflvl1)

        data = {'name': 'Community awareness program conducted to plant trees',
                'workflowlevel1': wflvl1.pk}

        request = self.factory.put(
            reverse('workflowlevel2-detail', args=(str(workflowlevel2.pk),)), data
        )
        request.user = self.core_user
        view = WorkflowLevel2ViewSet.as_view({'put': 'update'})
        response = view(request, pk=str(workflowlevel2.pk))
        self.assertEqual(response.status_code, 403)
Пример #22
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)
Пример #23
0
    def test_create_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/')
        wflvl1 = factories.WorkflowLevel1()
        indicator = factories.Indicator(workflowlevel1=[wflvl1])
        indicator_url = reverse('indicator-detail',
                                kwargs={'pk': indicator.id},
                                request=request)

        data = {'indicator': indicator_url}

        request = self.factory.post('/api/collecteddata/', data)
        request.user = self.tola_user.user
        view = CollectedDataViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['indicator'], indicator_url)
Пример #24
0
    def test_update_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.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_create_documentation_program_admin(self):
        request = self.factory.post('/api/documentation/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)
        WorkflowTeam.objects.create(
            workflow_user=self.tola_user,
            workflowlevel1=wflvl1,
            role=factories.Group(name=ROLE_PROGRAM_ADMIN))

        data = {'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/documentation/', data)
        request.user = self.tola_user.user
        view = DocumentationViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['workflowlevel1'], wflvl1_url)
Пример #26
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.tola_user = factories.TolaUser()

        self.read = factories.Read(
            owner=self.tola_user.user,
            type=factories.ReadType(read_type='CustomForm'),
            read_name='Lennon Survey',
        )
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        self.silo = factories.Silo(
            name='Lennon Survey',
            workflowlevel1=[wflvl1],
            owner=self.tola_user.user,
            columns='[{"name": "name", "type": "text"},'
                    '{"name": "age", "type": "number"},'
                    '{"name": "city", "type": "text"}]',
            reads=[self.read],
            public=False
        )
Пример #27
0
    def test_create_customform_view_only(self):
        request = self.factory.post('/api/customform/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)
        WorkflowTeam.objects.create(
            workflow_user=self.tola_user,
            workflowlevel1=wflvl1,
            role=factories.Group(name=ROLE_VIEW_ONLY))

        data = {'name': '4W Daily Activity Report',
                'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/customform/', data)
        request.user = self.tola_user.user
        view = CustomFormViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 403)
Пример #28
0
    def test_create_customform_org_admin(self):
        group_org_admin = factories.Group(name=ROLE_ORGANIZATION_ADMIN)
        self.tola_user.user.groups.add(group_org_admin)

        request = self.factory.post('/api/customform/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)

        data = {'name': '4W Daily Activity Report',
                'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/customform/', data)
        request.user = self.tola_user.user
        view = CustomFormViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['name'], '4W Daily Activity Report')
Пример #29
0
    def test_create_level_program_team(self):
        request = self.factory.post('/api/level/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.tola_user.organization)
        wflvl1_url = reverse('workflowlevel1-detail',
                             kwargs={'pk': wflvl1.id},
                             request=request)
        WorkflowTeam.objects.create(
            workflow_user=self.tola_user,
            workflowlevel1=wflvl1,
            role=factories.Group(name=ROLE_PROGRAM_TEAM))

        data = {'name': 'Goal', 'workflowlevel1': wflvl1_url}

        request = self.factory.post('/api/level/', data)
        request.user = self.tola_user.user
        view = LevelViewSet.as_view({'post': 'create'})
        response = view(request)

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.data['name'], u'Goal')
    def test_update_workflowlevel2sort_normal_user(self):
        request = self.factory.post('/workflowlevel2sort/')
        wflvl1 = factories.WorkflowLevel1(
            organization=self.core_user.organization)
        workflowlevel2sort = factories.WorkflowLevel2Sort(
            workflowlevel1=wflvl1)

        data = {'workflowlevel2_pk': uuid.uuid4(),
                'workflowlevel1': wflvl1.pk}

        request = self.factory.post('/workflowlevel2sort/', data)
        request.user = self.core_user
        view = WorkflowLevel2SortViewSet.as_view({'post': 'update'})
        response = view(request, pk=workflowlevel2sort.pk)

        self.assertEqual(response.status_code, 200)

        workflowlevel2sort = WorkflowLevel2Sort.objects.get(
            pk=response.data['id'])
        self.assertEqual(workflowlevel2sort.workflowlevel2_pk,
                          data['workflowlevel2_pk'])