def setUpTestData(cls):
        group1 = GroupFactory(name='Group1')
        group2 = GroupFactory(name='Group2')

        cls.user1 = UserFactory(username='******')
        cls.user2 = UserFactory(username='******')

        cls.user1.groups = [group1]
        cls.user2.groups = [group2]

        Permission.objects.bulk_create([
            Permission(user_type='Group1',
                       permission='edit',
                       target='parent.field'),
            Permission(user_type='Group1',
                       permission='edit',
                       target='parent.children2'),
            Permission(user_type='Group1',
                       permission='edit',
                       target='child2.field'),
            Permission(user_type='Group1',
                       permission='view',
                       target='child2.field2'),
            Permission(user_type='Group2',
                       permission='view',
                       target='parent.field'),
            Permission(user_type='Group2',
                       permission='view',
                       target='parent.children2'),
            Permission(user_type='Group2',
                       permission='edit',
                       target='child2.field2'),
        ])

        class Child2Serializer(PermissionsBasedSerializerMixin,
                               WritableNestedSerializerMixin,
                               serializers.ModelSerializer):
            class Meta(PermissionsBasedSerializerMixin.Meta,
                       WritableNestedSerializerMixin.Meta):
                model = Child2
                fields = ['id', 'field']
                permission_class = Permission

        class ParentSerializer(PermissionsBasedSerializerMixin,
                               WritableNestedSerializerMixin,
                               serializers.ModelSerializer):
            children2 = Child2Serializer(many=True)

            class Meta(PermissionsBasedSerializerMixin.Meta,
                       WritableNestedSerializerMixin.Meta):
                model = Parent
                fields = ['id', 'field', 'children2']
                permission_class = Permission

        cls.ParentSerializer = ParentSerializer
Ejemplo n.º 2
0
    def setUpTestData(cls):
        group1 = GroupFactory(name='Group1')
        group2 = GroupFactory(name='Group2')

        cls.user1 = UserFactory(username='******')
        cls.user2 = UserFactory(username='******')
        cls.user3 = UserFactory(username='******')

        cls.user1.groups = [group1]
        cls.user2.groups = [group2]
        cls.user3.groups = [group1, group2]
Ejemplo n.º 3
0
 def setUp(self):
     self.unicef_staff = UserFactory(is_staff=True)
     self.unicef_superuser = UserFactory(is_superuser=True)
     self.partnership_manager_user = UserFactory(is_staff=True)
     self.group = GroupFactory()
     self.partnership_manager_user.groups.add(self.group)
     self.url = reverse('users_v2:myprofile-detail')
Ejemplo n.º 4
0
 def setUpTestData(cls):
     cls.unicef_staff = UserFactory(is_staff=True)
     cls.unicef_staff.groups.add(GroupFactory(name='Partnership Manager'))
     cls.partner = PartnerFactory()
     cls.planned_visit = PartnerPlannedVisitsFactory(partner=cls.partner, )
     cls.url = reverse("partners_api:partner-planned-visits-del",
                       args=[cls.planned_visit.pk])
Ejemplo n.º 5
0
 def setUp(self):
     self.unicef_staff = UserFactory(is_staff=True)
     self.unicef_superuser = UserFactory(is_superuser=True)
     self.partnership_manager_user = UserFactory(is_staff=True)
     self.group = GroupFactory()
     self.partnership_manager_user.groups.add(self.group)
     self.url = reverse("users_v3:users-list")
Ejemplo n.º 6
0
 def setUpTestData(cls):
     cls.unicef_staff = UserFactory(is_staff=True)
     group = GroupFactory(name='Partnership Manager')
     cls.unicef_staff.groups.add(group)
     cls.intervention = InterventionFactory(
         start=datetime.date(2001, 1, 1),
         status=Intervention.DRAFT,
         in_amendment=True,
     )
Ejemplo n.º 7
0
 def test_group_set_is_cached(self):
     f = TenantFlagFactory()
     group = GroupFactory()
     f.groups.add(group)
     f.save()
     self.user.groups.add(group)
     with self.assertNumQueries(4):
         self.assertTrue(f.is_active(self.request))
     with self.assertNumQueries(1):
         # we still need to query the user's list of groups
         self.assertTrue(f.is_active(self.request))
Ejemplo n.º 8
0
 def setUpTestData(cls):
     cls.unicef_staff = UserFactory(is_staff=True)
     group = GroupFactory(name='Partnership Manager')
     cls.unicef_staff.groups.add(group)
     cls.intervention = InterventionFactory(
         start=datetime.date(2001, 1, 1),
         status=Intervention.DRAFT,
         in_amendment=True,
     )
     cls.url = reverse(
         "reports:interventions-special-reporting-requirements",
         kwargs={'intervention_pk': cls.intervention.id})
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
    def setUp(self):
        self.unicef_staff = UserFactory(is_superuser=True)
        group = GroupFactory()
        self.unicef_staff.groups.add(group)
        # The tested endpoints require the country id in the query string
        self.country = CountryFactory()
        self.unicef_staff.profile.country = self.country
        self.unicef_staff.save()

        self.location_no_geom = LocationFactory(name="Test no geom")
        self.location_with_geom = LocationFactory(
            name="Test with geom",
            geom="MultiPolygon(((10 10, 10 20, 20 20, 20 15, 10 10)), ((10 10, 10 20, 20 20, 20 15, 10 10)))"
        )
Ejemplo n.º 11
0
    def setUpTestData(cls):
        cls.unicef_staff = UserFactory(is_staff=True)
        cls.partnership_manager_user = UserFactory(is_staff=True)
        cls.partnership_manager_user.groups.add(GroupFactory())

        cls.partner1 = PartnerFactory(
            partner_type=PartnerType.CIVIL_SOCIETY_ORGANIZATION)
        cls.country_programme = CountryProgrammeFactory()
        cls.agreement1 = AgreementFactory(
            partner=cls.partner1, signed_by_unicef_date=datetime.date.today())
        cls.intervention = InterventionFactory(agreement=cls.agreement1)
        cls.intervention_2 = InterventionFactory(agreement=cls.agreement1,
                                                 document_type=Intervention.PD)
        cls.amendment = AgreementAmendment.objects.create(
            agreement=cls.agreement1,
            types=[AgreementAmendment.IP_NAME, AgreementAmendment.CLAUSE],
            number="001",
            signed_amendment="application/pdf",
            signed_date=datetime.date.today())
Ejemplo n.º 12
0
    def setUp(self):
        super().setUp()

        self.unicef_staff = UserFactory(is_superuser=True)
        group = GroupFactory()
        self.unicef_staff.groups.add(group)
        self.country = CountryFactory()
        self.unicef_staff.profile.country = self.country
        self.unicef_staff.save()
        self.partner = PartnerFactory()
        self.agreement = AgreementFactory(partner=self.partner)
        self.intervention = InterventionFactory(agreement=self.agreement)
        self.location_no_geom = LocationFactory(name="Test no geom")
        self.location_with_geom = LocationFactory(
            name="Test with geom",
            geom=
            "MultiPolygon(((10 10, 10 20, 20 20, 20 15, 10 10)), ((10 10, 10 20, 20 20, 20 15, 10 10)))"
        )
        self.inactive_location = LocationFactory(is_active=False)
        self.locations = [self.location_no_geom, self.location_with_geom]
Ejemplo n.º 13
0
 def setUpTestData(cls):
     cls.user = UserFactory(is_staff=True)
     cls.pme_user = UserFactory()
     cls.group = GroupFactory(name="PME")
     cls.pme_user.groups.add(cls.group)
Ejemplo n.º 14
0
 def setUpTestData(cls):
     cls.user = UserFactory(is_staff=True)
     cls.pme_user = UserFactory()
     cls.group = GroupFactory(name="PME")
     cls.pme_user.groups.add(cls.group)
     cls.url = reverse('reports:disaggregation-list-create')
 def test_manager(self):
     user = UserFactory()
     user.groups.add(GroupFactory(name="Partnership Manager"))
     self.assertTrue(partnership_manager_only(None, user))
Ejemplo n.º 16
0
 def setUpTestData(cls):
     cls.readonly_group = GroupFactory(name=READ_ONLY_API_GROUP_NAME)
Ejemplo n.º 17
0
 def setUpTestData(cls):
     cls.unicef_staff = UserFactory(is_staff=True)
     cls.unicef_superuser = UserFactory(is_superuser=True)
     cls.partnership_manager_user = UserFactory(is_staff=True)
     cls.group = GroupFactory()
     cls.partnership_manager_user.groups.add(cls.group)
Ejemplo n.º 18
0
 def setUpTestData(cls):
     cls.url = reverse("partners_api:partner-add")
     cls.user = UserFactory(is_staff=True)
     cls.user.groups.add(GroupFactory())
Ejemplo n.º 19
0
 def setUp(self):
     self.unicef_superuser = UserFactory(is_superuser=True)
     self.partnership_manager_user = UserFactory(is_staff=True)
     self.group = GroupFactory()
     self.partnership_manager_user.groups.add(self.group)
Ejemplo n.º 20
0
 def setUpTestData(cls):
     cls.group = GroupFactory(name="UNICEF User")
Ejemplo n.º 21
0
def setup_intervention_test_data(test_case,
                                 include_results_and_indicators=False):
    today = datetime.date.today()
    test_case.unicef_staff = UserFactory(is_staff=True)
    test_case.partnership_manager_user = UserFactory(is_staff=True)
    test_case.partnership_manager_user.groups.add(GroupFactory())
    test_case.partner = PartnerFactory(name='Partner 1', vendor_number="VP1")
    test_case.partner1 = PartnerFactory(name='Partner 2')
    test_case.agreement = AgreementFactory(
        partner=test_case.partner, signed_by_unicef_date=datetime.date.today())

    test_case.active_agreement = AgreementFactory(
        partner=test_case.partner1,
        status='active',
        signed_by_unicef_date=datetime.date.today(),
        signed_by_partner_date=datetime.date.today())

    test_case.intervention = InterventionFactory(agreement=test_case.agreement,
                                                 title='Intervention 1')
    test_case.intervention_2 = InterventionFactory(
        agreement=test_case.agreement,
        title='Intervention 2',
        document_type=Intervention.PD,
    )
    test_case.active_intervention = InterventionFactory(
        agreement=test_case.active_agreement,
        title='Active Intervention',
        document_type=Intervention.PD,
        start=today - datetime.timedelta(days=1),
        end=today + datetime.timedelta(days=90),
        status='active',
        signed_by_unicef_date=today - datetime.timedelta(days=1),
        signed_by_partner_date=today - datetime.timedelta(days=1),
        unicef_signatory=test_case.unicef_staff,
        partner_authorized_officer_signatory=test_case.partner1.staff_members.
        all().first())

    test_case.result_type = ResultType.objects.get_or_create(
        name=ResultType.OUTPUT)[0]
    test_case.result = ResultFactory(result_type=test_case.result_type)

    test_case.partnership_budget = InterventionBudget.objects.create(
        intervention=test_case.intervention,
        unicef_cash=10,
        unicef_cash_local=100,
        partner_contribution=20,
        partner_contribution_local=200,
        in_kind_amount_local=10,
    )

    # set up two frs not connected to any interventions
    test_case.fr_1 = FundsReservationHeaderFactory(intervention=None,
                                                   currency='USD')
    test_case.fr_2 = FundsReservationHeaderFactory(intervention=None,
                                                   currency='USD')

    if include_results_and_indicators:
        # setup additional inicator/results
        test_case.result = ResultFactory(name='A Result')
        test_case.result_link = InterventionResultLink.objects.create(
            intervention=test_case.active_intervention,
            cp_output=test_case.result)
        test_case.lower_result = LowerResult.objects.create(
            result_link=test_case.result_link, name='Lower Result 1')
        test_case.indicator_blueprint = IndicatorBlueprint.objects.create(
            title='The Blueprint')
        test_case.applied_indicator = AppliedIndicator.objects.create(
            indicator=test_case.indicator_blueprint,
            lower_result=test_case.lower_result,
        )
        test_case.applied_indicator.locations.add(
            LocationFactory(name='A Location',
                            gateway=GatewayTypeFactory(name='A Gateway'),
                            p_code='a-p-code'))
        test_case.disaggregation = test_case.applied_indicator.disaggregation.create(
            name='A Disaggregation')

    test_case.file_type_attachment = AttachmentFileTypeFactory(
        code="partners_intervention_attachment")
    test_case.file_type_prc = AttachmentFileTypeFactory(
        code="partners_intervention_prc_review")
    test_case.file_type_pd = AttachmentFileTypeFactory(
        code="partners_intervention_signed_pd")