示例#1
0
 def setUp(self):
     self.assessment = AssessmentFactory(
         partner=self.partner,
         completed_date=None,
         report=None,
     )
     self.attachment = AttachmentFactory(
         file="test_file.pdf",
         file_type=None,
         code="",
     )
示例#2
0
 def setUpTestData(cls):
     cls.file_type_partner = AttachmentFileTypeFactory(
         code="partners_partner_assessment")
     cls.file_type_agreement = AttachmentFileTypeFactory(
         code="partners_agreement")
     cls.file_type_assessment = AttachmentFileTypeFactory(
         code="partners_assessment_report")
     cls.file_type_agreement_amendment = AttachmentFileTypeFactory(
         code="partners_agreement_amendment")
     cls.file_type_intervention_prc_review = AttachmentFileTypeFactory(
         code="partners_intervention_prc_review")
     cls.file_type_intervention_signed_pd = AttachmentFileTypeFactory(
         code="partners_intervention_signed_pd")
     cls.file_type_intervention_amendment = AttachmentFileTypeFactory(
         code="partners_intervention_amendment_signed")
     cls.file_type_intervention_attachment = AttachmentFileTypeFactory(
         code="partners_intervention_attachment")
     cls.partner = PartnerFactory()
     cls.core_values_assessment = CoreValuesAssessmentFactory(
         assessment="sample.pdf")
     cls.agreement = AgreementFactory(attached_agreement="sample.pdf")
     cls.assessment = AssessmentFactory(report="sample.pdf")
     cls.agreement_amendment = AgreementAmendmentFactory(
         signed_amendment="sample.pdf")
     cls.intervention = InterventionFactory(
         prc_review_document="prc_sample.pdf",
         signed_pd_document="pd_sample.pdf")
     cls.intervention_amendment = InterventionAmendmentFactory(
         signed_amendment="sample.pdf")
     cls.intervention_attachment = InterventionAttachmentFactory(
         attachment="sample.pdf")
示例#3
0
    def setUpTestData(cls):
        cls.code_1 = "test_code_1"
        cls.file_type_1 = AttachmentFileTypeFactory(code=cls.code_1)
        cls.code_2 = "test_code_2"
        cls.file_type_2 = AttachmentFileTypeFactory(code=cls.code_2)
        cls.unicef_staff = UserFactory(is_staff=True)
        cls.user = UserFactory()
        cls.url = reverse("attachments:list")
        cls.attachment_1 = AttachmentFactory(
            file_type=cls.file_type_1,
            code=cls.code_1,
            file="sample1.pdf",
            content_object=cls.file_type_1,
            uploaded_by=cls.unicef_staff
        )
        cls.attachment_2 = AttachmentFactory(
            file_type=cls.file_type_2,
            code=cls.code_2,
            file="sample2.pdf",
            content_object=cls.file_type_2,
            uploaded_by=cls.user
        )

        cls.partner = PartnerFactory(
            partner_type=PartnerType.UN_AGENCY,
            vendor_number="V123",
        )
        cls.agreement = AgreementFactory(partner=cls.partner)
        cls.assessment = AssessmentFactory(partner=cls.partner)
        cls.amendment = AgreementAmendmentFactory(agreement=cls.agreement)
        cls.intervention = InterventionFactory(agreement=cls.agreement)
        cls.result_link = InterventionResultLinkFactory(
            intervention=cls.intervention
        )
        cls.intervention_amendment = InterventionAmendmentFactory(
            intervention=cls.intervention
        )
        cls.intervention_attachment = InterventionAttachmentFactory(
            intervention=cls.intervention
        )

        cls.tpm_partner = SimpleTPMPartnerFactory(vendor_number="V432")
        cls.tpm_visit = TPMVisitFactory(tpm_partner=cls.tpm_partner)
        cls.tpm_activity = TPMActivityFactory(
            partner=cls.partner,
            intervention=cls.intervention,
            tpm_visit=cls.tpm_visit
        )

        cls.engagement = EngagementFactory(partner=cls.partner)

        cls.default_partner_response = [{
            "partner": "",
            "partner_type": "",
            "vendor_number": "",
            "pd_ssfa_number": "",
            "agreement_reference_number": "",
            "source": "",
        }] * 2
示例#4
0
 def setUp(self):
     self.assessment = AssessmentFactory(
         partner=self.partner,
         completed_date=None,
         report=None,
     )
     self.attachment = AttachmentFactory(
         file="test_file.pdf",
         file_type=None,
         code="",
     )
示例#5
0
 def test_assessment(self):
     assessment = AssessmentFactory(partner=self.partner)
     attachment = AttachmentFactory(content_object=assessment)
     file_path = models.generate_file_path(attachment, "test.pdf")
     self.assert_file_path(file_path, [
         "assesments",
         str(assessment.pk),
         "test.pdf"
     ], "partners")
     # check against old file path function
     file_path_old = partner_models.get_assesment_path(
         assessment,
         "test.pdf"
     )
     self.assertEqual(file_path, file_path_old)
示例#6
0
    def test_delete_error_report(self):
        assessment = AssessmentFactory(
            partner=self.partner,
            completed_date=None,
        )
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail',
                    args=[assessment.pk]),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data,
                         ["Cannot delete a completed assessment"])
示例#7
0
 def setUp(self):
     super().setUp()
     self.assessment = AssessmentFactory(partner=self.partner,
                                         report="fake_report.pdf")
示例#8
0
 def setUp(self):
     super(TestPartnerOrganizationAssessmentModelExport, self).setUp()
     self.assessment = AssessmentFactory(
         partner=self.partner,
         report="fake_report.pdf"
     )
示例#9
0
class TestPartnerOrganizationAssessmentUpdateDeleteView(BaseTenantTestCase):
    @classmethod
    def setUpTestData(cls):
        cls.unicef_staff = UserFactory(is_staff=True)
        cls.partner = PartnerFactory(
            partner_type=PartnerType.CIVIL_SOCIETY_ORGANIZATION,
            cso_type="International",
            hidden=False,
            vendor_number="DDD",
            short_name="Short name",
        )
        cls.partner_staff = PartnerStaffFactory(partner=cls.partner)
        cls.partnership_manager_user = UserFactory(is_staff=True)
        cls.partnership_manager_user.groups.add(GroupFactory())
        cls.partnership_manager_user.profile.partner_staff_member = cls.partner_staff.id
        cls.partnership_manager_user.save()

    def setUp(self):
        self.assessment = AssessmentFactory(
            partner=self.partner,
            completed_date=None,
            report=None,
        )
        self.attachment = AttachmentFactory(
            file="test_file.pdf",
            file_type=None,
            code="",
        )

    def test_post(self):
        assessment_qs = Assessment.objects.filter(partner=self.partner)
        assessment_count = assessment_qs.count()
        response = self.forced_auth_req(
            'post',
            reverse('partners_api:partner-assessment'),
            user=self.partnership_manager_user,
            data={
                "partner": self.partner.pk,
                "type": Assessment.TYPE_OTHER,
                "report_attachment": self.attachment.pk,
                "completed_date": datetime.date.today(),
            }
        )

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(assessment_qs.count(), assessment_count + 1)
        self.attachment.refresh_from_db()
        self.assertTrue(self.attachment.file_type)

    def test_patch(self):
        self.assertTrue(self.assessment.active)
        response = self.forced_auth_req(
            'patch',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[self.assessment.pk]
            ),
            user=self.partnership_manager_user,
            data={
                "active": False
            }
        )

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assessment.refresh_from_db()
        self.assertFalse(self.assessment.active)

    def test_patch_permission(self):
        response = self.forced_auth_req(
            'patch',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[self.assessment.pk]
            ),
            user=self.unicef_staff,
            data={
                "active": False
            }
        )

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

    def test_delete_valid(self):
        response = self.forced_auth_req(
            'delete',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[self.assessment.pk]
            ),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

    def test_delete_error_completed_date(self):
        assessment = AssessmentFactory(
            partner=self.partner,
            report=None,
        )
        response = self.forced_auth_req(
            'delete',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[assessment.pk]
            ),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data, ["Cannot delete a completed assessment"])

    def test_delete_error_report(self):
        assessment = AssessmentFactory(
            partner=self.partner,
            completed_date=None,
        )
        response = self.forced_auth_req(
            'delete',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[assessment.pk]
            ),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data, ["Cannot delete a completed assessment"])

    def test_delete_permission(self):
        response = self.forced_auth_req(
            'delete',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[self.assessment.pk]
            ),
            user=self.unicef_staff,
        )

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

    def test_delete_not_found(self):
        response = self.forced_auth_req(
            'delete',
            reverse(
                'partners_api:partner-assessment-detail',
                args=[404]
            ),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
示例#10
0
class TestPartnerOrganizationAssessmentUpdateDeleteView(BaseTenantTestCase):
    @classmethod
    def setUpTestData(cls):
        cls.unicef_staff = UserFactory(is_staff=True)
        cls.partner = PartnerFactory(
            partner_type=PartnerType.CIVIL_SOCIETY_ORGANIZATION,
            cso_type="International",
            hidden=False,
            vendor_number="DDD",
            short_name="Short name",
        )
        cls.partner_staff = PartnerStaffFactory(partner=cls.partner)
        cls.partnership_manager_user = UserFactory(is_staff=True)
        cls.partnership_manager_user.groups.add(GroupFactory())
        cls.partnership_manager_user.profile.partner_staff_member = cls.partner_staff.id
        cls.partnership_manager_user.save()

    def setUp(self):
        self.assessment = AssessmentFactory(
            partner=self.partner,
            completed_date=None,
            report=None,
        )
        self.attachment = AttachmentFactory(
            file="test_file.pdf",
            file_type=None,
            code="",
        )

    def test_post(self):
        assessment_qs = Assessment.objects.filter(partner=self.partner)
        assessment_count = assessment_qs.count()
        response = self.forced_auth_req(
            'post',
            reverse('partners_api:partner-assessment'),
            user=self.partnership_manager_user,
            data={
                "partner": self.partner.pk,
                "type": Assessment.TYPE_OTHER,
                "report_attachment": self.attachment.pk,
                "completed_date": datetime.date.today(),
            })

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(assessment_qs.count(), assessment_count + 1)
        self.attachment.refresh_from_db()
        self.assertTrue(self.attachment.file_type)

    def test_patch(self):
        self.assertTrue(self.assessment.active)
        response = self.forced_auth_req(
            'patch',
            reverse('partners_api:partner-assessment-detail',
                    args=[self.assessment.pk]),
            user=self.partnership_manager_user,
            data={"active": False})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assessment.refresh_from_db()
        self.assertFalse(self.assessment.active)

    def test_patch_permission(self):
        response = self.forced_auth_req(
            'patch',
            reverse('partners_api:partner-assessment-detail',
                    args=[self.assessment.pk]),
            user=self.unicef_staff,
            data={"active": False})

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

    def test_delete_valid(self):
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail',
                    args=[self.assessment.pk]),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

    def test_delete_error_completed_date(self):
        assessment = AssessmentFactory(
            partner=self.partner,
            report=None,
        )
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail',
                    args=[assessment.pk]),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data,
                         ["Cannot delete a completed assessment"])

    def test_delete_error_report(self):
        assessment = AssessmentFactory(
            partner=self.partner,
            completed_date=None,
        )
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail',
                    args=[assessment.pk]),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data,
                         ["Cannot delete a completed assessment"])

    def test_delete_permission(self):
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail',
                    args=[self.assessment.pk]),
            user=self.unicef_staff,
        )

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

    def test_delete_not_found(self):
        response = self.forced_auth_req(
            'delete',
            reverse('partners_api:partner-assessment-detail', args=[404]),
            user=self.partnership_manager_user,
        )

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)