Ejemplo n.º 1
0
    def setUp(self):

        super().setUp()

        self.unit = utils.create_unit()
        self.group = utils.create_group()
        for p in Permission.objects.all():
            self.group.permissions.add(p)
        self.user.groups.add(self.group)
        self.test_list = utils.create_test_list()

        self.tnum_1 = utils.create_test(name="test1")
        self.tnum_2 = utils.create_test(name="test2")
        self.tcomp = utils.create_test(name="testc",
                                       test_type=models.COMPOSITE)
        self.tcomp.calculation_procedure = "result = test1 + test2 + 2"
        self.tcomp.save()

        self.tdate = utils.create_test(name="testdate", test_type=models.DATE)
        self.tdatetime = utils.create_test(name="testdatetime",
                                           test_type=models.DATETIME)

        self.tmult = utils.create_test(name="testmult",
                                       choices="choicea,choiceb",
                                       test_type=models.MULTIPLE_CHOICE)
        self.tstring = utils.create_test(name="teststring",
                                         test_type=models.STRING)
        self.tstringcomp = utils.create_test(name="teststringcomp",
                                             test_type=models.STRING_COMPOSITE)
        self.tstringcomp.calculation_procedure = "teststringcomp = teststring + testmult"
        self.tstringcomp.save()

        all_tests = [
            self.tnum_1,
            self.tnum_2,
            self.tcomp,
            self.tdate,
            self.tdatetime,
            self.tmult,
            self.tstring,
            self.tstringcomp,
        ]

        for o, t in enumerate(all_tests):
            utils.create_test_list_membership(self.test_list, t, order=o)

        self.utc = utils.create_unit_test_collection(
            unit=self.unit, test_collection=self.test_list)

        self.utc.visible_to.add(self.group)
        self.url = reverse("perform_qa", kwargs={'pk': self.utc.pk})
        self.status = models.TestInstanceStatus.objects.create(
            name="foo",
            slug="foo",
            is_default=True,
        )

        sl_utils.create_service_event_status(is_default=True)
        sl_utils.create_unit_service_area(self.utc.unit)
        sl_utils.create_service_type()
Ejemplo n.º 2
0
    def setUp(self):

        self.unit1 = qa_utils.create_unit(name="unit1", number=1)
        self.unit2 = qa_utils.create_unit(name="unit2", number=2)
        self.usa1 = utils.create_unit_service_area(unit=self.unit1)
        self.usa2 = utils.create_unit_service_area(unit=self.unit2)

        self.se1 = utils.create_service_event(unit_service_area=self.usa1,
                                              is_review_required=True)
        self.se2 = utils.create_service_event(unit_service_area=self.usa2,
                                              is_review_required=False)

        self.unit_group = UnitGroup.objects.create(name="test group")
        self.unit_group.units.add(self.usa1.unit)

        self.group = qa_utils.create_group()
        user = models.User.objects.latest('pk')
        user.is_active = True
        user.groups.add(self.group)
        user.email = "*****@*****.**"
        user.save()

        self.recipients = RecipientGroup.objects.create(name="test group")
        self.recipients.groups.add(self.group)

        self.inactive_user = models.User.objects.create_user(
            'inactive', '*****@*****.**', 'password')
        self.inactive_user.groups.add(self.group)
        self.inactive_user.is_active = False
        self.inactive_user.save()

        # delete defaults schedules to make counting easier
        Schedule.objects.all().delete()
Ejemplo n.º 3
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(unit_service_area=usa1)

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event(unit_service_area=usa2)

        rep = sl.ServiceEventSummaryReport(report_opts={'include_description': True})
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_row = table.index([
            _("Service Event ID"),
            _("Service Date"),
            _("Site"),
            _("Unit"),
            _("Service Area"),
            _("Service Type"),
            _("Status"),
            _("Service Time"),
            _("Lost Time"),
            _("Problem Description"),
            _("Work Description"),
            _("Link"),
        ])
        # should be two ses after header
        assert len(table[header_row + 1:]) == 2
Ejemplo n.º 4
0
    def setUp(self):

        self.usa1 = utils.create_unit_service_area()
        self.usa2 = utils.create_unit_service_area()
        self.sch1 = utils.create_service_event_schedule(
            unit_service_area=self.usa1)
        self.sch2 = utils.create_service_event_schedule(
            unit_service_area=self.usa2)

        self.unit_group = UnitGroup.objects.create(name="test group")
        self.unit_group.units.add(self.usa1.unit)

        self.group = models.Group.objects.latest('pk')
        user = models.User.objects.latest('pk')
        user.groups.add(self.group)
        user.email = "*****@*****.**"
        user.save()

        self.recipients = RecipientGroup.objects.create(name="test group")
        self.recipients.groups.add(self.group)

        self.inactive_user = models.User.objects.create_user(
            'inactive', '*****@*****.**', 'password')
        self.inactive_user.groups.add(self.group)
        self.inactive_user.is_active = False
        self.inactive_user.save()

        self.notice = ServiceEventSchedulingNotice.objects.create(
            recipients=self.recipients,
            notification_type=ServiceEventSchedulingNotice.UPCOMING_AND_DUE,
            future_days=7,
            time="0:00",
        )
        # delete defaults schedules to make counting easier
        Schedule.objects.all().delete()
Ejemplo n.º 5
0
    def setUp(self):

        self.unit1 = qa_utils.create_unit(name="unit1", number=1)
        self.unit2 = qa_utils.create_unit(name="unit2", number=2)
        self.usa1 = utils.create_unit_service_area(unit=self.unit1)
        self.usa2 = utils.create_unit_service_area(unit=self.unit2)

        self.unit_group = UnitGroup.objects.create(name="test group")
        self.unit_group.units.add(self.usa1.unit)

        self.group = qa_utils.create_group()
        user = models.User.objects.latest('pk')
        user.groups.add(self.group)
        user.is_active = True
        user.email = "*****@*****.**"
        user.save()

        self.recipients = RecipientGroup.objects.create(name="test group")
        self.recipients.groups.add(self.group)

        self.inactive_user = models.User.objects.create_user(
            'inactive', '*****@*****.**', 'password')
        self.inactive_user.groups.add(self.group)
        self.inactive_user.is_active = False
        self.inactive_user.save()

        self.notice = ServiceEventReviewNotice.objects.create(
            recipients=self.recipients,
            notification_type=ServiceEventReviewNotice.UNREVIEWED,
            time="0:00",
        )
        # delete defaults schedules to make counting easier
        Schedule.objects.all().delete()
Ejemplo n.º 6
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        usa = sl_utils.create_unit_service_area(unit=unit)
        sl_utils.create_service_event_schedule(unit_service_area=usa)

        usa2 = sl_utils.create_unit_service_area()
        sl_utils.create_service_event_schedule(unit_service_area=usa2)

        rep = sl.ScheduledTemplatesReport(report_opts={'active': True})
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_row = table.index([
            _("Site"),
            _("Unit"),
            _("Service Area"),
            _("Template Name"),
            _("Frequency"),
            _("Assigned To"),
            _("Link"),
        ])
        assert len(table[header_row + 1:]) == 2
Ejemplo n.º 7
0
    def test_unique_together(self):

        sl_utils.create_unit_service_area(unit=self.u, service_area=self.sa)

        with self.assertRaises(IntegrityError):
            sl_models.UnitServiceArea.objects.create(unit=self.u,
                                                     service_area=self.sa)
Ejemplo n.º 8
0
    def test_with_service_area(self):
        """If we filter for service area, the searcher should only return
        templates where the service_area is correct"""

        # one template with correct service type
        sa1 = sl_utils.create_service_area()
        t1 = self.create_template("1", service_area=sa1)
        sl_utils.create_unit_service_area(
            unit=self.unit,
            service_area=sa1,
        )

        # one template with incorrect service area
        sa2 = sl_utils.create_service_area()
        self.create_template("2", service_area=sa2)

        # one template with no service_area
        self.create_template("3")

        resp = self.client.get(self.url,
                               data={
                                   'unit': self.unit.id,
                                   'service_area': sa1.pk
                               })
        data = resp.json()
        assert len(data) == 1
        assert data[0]['id'] == t1.id
Ejemplo n.º 9
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(unit_service_area=usa1)

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        se = sl_utils.create_service_event(unit_service_area=usa2)
        se2 = sl_utils.create_service_event(unit_service_area=usa2)
        se.service_event_related.add(se2)

        sl_utils.create_hours(service_event=se)
        tp = sl_utils.create_third_party()
        sl_utils.create_hours(service_event=se, third_party=tp)
        sl_utils.create_group_linker_instance(service_event=se)
        part = sl_utils.create_part()

        parts_models.PartUsed.objects.create(service_event=se, part=part, quantity=1)

        attachment = Attachment(
            attachment=ContentFile("content", "content.pdf"),
            created_by=se.user_created_by,
            serviceevent=se,
        )
        attachment.save()

        rep = sl.ServiceEventPersonnelSummaryReport()
        rep.report_format = "xlsx"
        context = rep.get_context()
        rep.to_table(context)
Ejemplo n.º 10
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        usa = sl_utils.create_unit_service_area(unit=unit)
        sch1 = sl_utils.create_service_event_schedule(unit_service_area=usa)
        sch1.due_date = timezone.now() - timezone.timedelta(days=1)
        sch1.save()

        unit2 = utils.create_unit(site=None)
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event_schedule(unit_service_area=usa2)

        rep = sl.NextScheduledServiceEventsDueDatesReport()
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_count = table.count([
            _("Unit"),
            _("Service Area"),
            _("Template Name"),
            _("Frequency"),
            _("Due Date"),
            _("Window"),
            _("Assigned To"),
            _("Perform")
        ])
        assert header_count == 2
Ejemplo n.º 11
0
    def setUp(self):

        self.usa1 = utils.create_unit_service_area()
        self.usa2 = utils.create_unit_service_area()
        self.sch1 = utils.create_service_event_schedule(
            unit_service_area=self.usa1)
        self.sch2 = utils.create_service_event_schedule(
            unit_service_area=self.usa2)

        self.unit_group = UnitGroup.objects.create(name="test group")
        self.unit_group.units.add(self.usa1.unit)

        self.group = models.Group.objects.latest('pk')
        user = models.User.objects.latest('pk')
        user.groups.add(self.group)
        user.email = "*****@*****.**"
        user.save()

        self.recipients = RecipientGroup.objects.create(name="test group")
        self.recipients.groups.add(self.group)

        self.inactive_user = models.User.objects.create_user(
            'inactive', '*****@*****.**', 'password')
        self.inactive_user.groups.add(self.group)
        self.inactive_user.is_active = False
        self.inactive_user.save()

        # delete defaults schedules to make counting easier
        Schedule.objects.all().delete()
Ejemplo n.º 12
0
    def test_get_ses_for_null_site(self):
        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(unit_service_area=usa1)

        unit2 = utils.create_unit(site=None)
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        se2 = sl_utils.create_service_event(unit_service_area=usa2)

        qs = models.ServiceEvent.objects.all()
        ses = sl.ServiceEventSummaryReport().get_ses_for_site(qs, None)
        assert [x.pk for x in ses] == [se2.pk]
Ejemplo n.º 13
0
    def test_generate_html(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(unit_service_area=usa1)

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event(unit_service_area=usa2)

        rep = sl.ServiceEventSummaryReport()
        rep.report_format = "pdf"
        rep.to_html()
Ejemplo n.º 14
0
    def test_valid_create_with_invalid_review(self):
        """Test that creating a fault with all options and an invalid reviewer does not work"""

        ft = FaultType.objects.create(code="fault type")

        rev_group = utils.create_fault_review_group()
        self.user.groups.add(rev_group.group)

        usa = sl_utils.create_unit_service_area(unit=self.unit)
        se = sl_utils.create_service_event(unit_service_area=usa)

        data = {
            "fault-occurred": "20 Jan 2021 17:59",
            "fault-unit": self.unit.id,
            "fault-modality": self.unit.modalities.all().first().pk,
            "fault-fault_types_field": [ft.code],
            "fault-comment": "test comment",
            "fault-related_service_events": [se.pk],
            "review-form-0-group": rev_group.group.name,
            "review-form-0-reviewed_by": "",
        }

        resp = self.client.post(self.create_url, data)
        assert resp.status_code == 200
        assert resp.context['review_forms'][0].errors
Ejemplo n.º 15
0
    def test_valid_create_with_review(self):
        """Test that creating a fault with all options and a reviewer set works"""

        ft = FaultType.objects.create(code="fault type")

        rev_group = utils.create_fault_review_group()
        self.user.groups.add(rev_group.group)

        usa = sl_utils.create_unit_service_area(unit=self.unit)
        se = sl_utils.create_service_event(unit_service_area=usa)

        data = {
            "fault-occurred": "20 Jan 2021 17:59",
            "fault-unit": self.unit.id,
            "fault-modality": self.unit.modalities.all().first().pk,
            "fault-fault_types_field": [ft.code],
            "fault-comment": "test comment",
            "fault-related_service_events": [se.pk],
            "review-form-0-group": rev_group.group.name,
            "review-form-0-reviewed_by": self.user.pk,
        }

        resp = self.client.post(self.create_url, data)
        assert resp.status_code == 302
        assert resp.url == self.list_url
        assert Comment.objects.count() == 1
        f = Fault.objects.latest('pk')
        assert f.faultreviewinstance_set.count() == 1
        assert list(f.related_service_events.values_list(
            "id", flat=True)) == [se.id]
Ejemplo n.º 16
0
 def test_generate_summary_html(self):
     site = USite.objects.create(name="site")
     unit = utils.create_unit(site=site)
     usa = sl_utils.create_unit_service_area(unit=unit)
     sl_utils.create_service_event_schedule(unit_service_area=usa)
     rep = sl.ScheduledTemplatesReport()
     rep.report_format = "pdf"
     rep.to_html()
Ejemplo n.º 17
0
    def test_generate_html(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(
            unit_service_area=usa1,
            service_time=timezone.timedelta(hours=1, minutes=23),
            lost_time=timezone.timedelta(hours=1, minutes=23),
        )

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event(unit_service_area=usa2)

        rep = sl.ServiceTimesReport()
        rep.report_format = "pdf"
        rep.to_html()
Ejemplo n.º 18
0
 def test_generate_next_due_dates_html(self):
     site = USite.objects.create(name="site")
     unit = utils.create_unit(site=site)
     usa = sl_utils.create_unit_service_area(unit=unit)
     sch = sl_utils.create_service_event_schedule(unit_service_area=usa)
     sch.due_date = timezone.now() + timezone.timedelta(days=1)
     sch.save()
     rep = sl.NextScheduledServiceEventsDueDatesReport()
     rep.report_format = "pdf"
     rep.to_html()
Ejemplo n.º 19
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(
            unit_service_area=usa1,
            service_time=timezone.timedelta(hours=1, minutes=23),
            lost_time=timezone.timedelta(hours=1, minutes=23),
        )

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event(unit_service_area=usa2)

        rep = sl.ServiceTimesReport()
        rep.report_format = "xlsx"
        context = rep.get_context()
        rep.to_table(context)
Ejemplo n.º 20
0
    def test_delete_unit_service_area_variables(self):

        # unit          > Cascade
        # service_area  > Cascade

        usa = sl_utils.create_unit_service_area()
        u = usa.unit
        usa_id = usa.id

        u.delete()
        self.assertFalse(
            sl_models.UnitServiceArea.objects.filter(id=usa_id).exists())

        usa = sl_utils.create_unit_service_area()
        sa = usa.service_area
        usa_id = usa.id

        sa.delete()
        self.assertFalse(
            sl_models.UnitServiceArea.objects.filter(id=usa_id).exists())
Ejemplo n.º 21
0
    def setUp(self):

        self.factory = RequestFactory()

        self.user = create_user(is_superuser=True)
        self.client.login(username='******', password='******')

        self.u1 = qa_utils.create_unit()
        self.u2 = qa_utils.create_unit()
        self.u3 = qa_utils.create_unit()

        self.usa1 = sl_utils.create_unit_service_area(unit=self.u1)
        self.usa2 = sl_utils.create_unit_service_area(unit=self.u2)
        self.usa2 = sl_utils.create_unit_service_area(unit=self.u2)
        self.usa3 = sl_utils.create_unit_service_area(unit=self.u3)
        self.usa3 = sl_utils.create_unit_service_area(unit=self.u3)
        self.usa3 = sl_utils.create_unit_service_area(unit=self.u3)

        qa_utils.create_unit_test_collection(unit=self.u1)
        self.utc = qa_utils.create_unit_test_collection(unit=self.u2)
        qa_utils.create_unit_test_collection(unit=self.u2)
        qa_utils.create_unit_test_collection(unit=self.u3)
        qa_utils.create_unit_test_collection(unit=self.u3)
        qa_utils.create_unit_test_collection(unit=self.u3)

        st = sl_utils.create_service_type()

        sl_utils.create_service_event(
            unit_service_area=self.usa1,
            service_time=timezone.timedelta(minutes=60),
            service_type=st)
        sl_utils.create_service_event(
            unit_service_area=self.usa2,
            service_time=timezone.timedelta(minutes=60),
            service_type=st)
        sl_utils.create_service_event(
            unit_service_area=self.usa2,
            service_time=timezone.timedelta(minutes=60),
            problem_description='problem on unit 3 or 2',
            service_type=st)
        sl_utils.create_service_event(
            unit_service_area=self.usa3,
            service_time=timezone.timedelta(minutes=60),
            service_type=st)
        sl_utils.create_service_event(
            unit_service_area=self.usa3,
            problem_description='problem on unit 3 or 2',
            service_time=timezone.timedelta(minutes=60),
            service_type=st)
        sl_utils.create_service_event(
            unit_service_area=self.usa3,
            problem_description='problem on unit 3 or 2',
            service_time=timezone.timedelta(minutes=60),
            service_type=st)
Ejemplo n.º 22
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        fault_utils.create_fault(unit=unit1)

        unit2 = utils.create_unit()
        fault2 = fault_utils.create_fault(unit=unit2)

        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        sl_utils.create_service_event(unit_service_area=usa2)
        se2 = sl_utils.create_service_event(unit_service_area=usa2)
        fault2.related_service_events.add(se2)

        user = sl_utils.create_user()
        comment = Comment(submit_date=timezone.now(),
                          user=user,
                          content_object=fault2,
                          comment="comment",
                          site=get_current_site(None))
        comment.save()

        rep = faults.FaultDetailsReport(
            report_opts={'review_status': 'unreviewed'})
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_row = table.index([
            _("Fault ID"),
            _("Occurred"),
            _("Site"),
            _("Unit"),
            _("Fault Type"),
            _("Modality"),
            _("Created By"),
            _("Created Date"),
            _("Modified By"),
            _("Modified Date"),
            _("Reviewed By"),
            _("Reviewed Date"),
            _("Related Service Events"),
            _("Link"),
        ])
        # should be three faults after header
        assert len(table[header_row + 1:]) == 2
Ejemplo n.º 23
0
    def setUp(self):

        self.user = create_user(is_superuser=True, uname='user', pwd='pwd')
        self.client.login(username='******', password='******')

        self.tli = qa_utils.create_test_list_instance()
        self.usa = sl_utils.create_unit_service_area(unit=self.tli.unit_test_collection.unit)
        self.se = sl_utils.create_service_event(
            unit_service_area=self.usa,
            add_test_list_instance_initiated_by=self.tli,
        )
        sl_utils.create_return_to_service_qa(add_test_list_instance=self.tli)

        self.url_list = reverse(
            'admin:%s_%s_changelist' % (
                qa_models.TestListInstance._meta.app_label, qa_models.TestListInstance._meta.model_name
            )
        )
        self.url_delete = reverse(
            'admin:%s_%s_delete' % (
                qa_models.TestListInstance._meta.app_label, qa_models.TestListInstance._meta.model_name
            ),
            args=[self.tli.id]
        )
Ejemplo n.º 24
0
    def test_valid_create(self):
        """Test that creating a fault with all options set works"""

        ft = FaultType.objects.create(code="fault type")

        usa = sl_utils.create_unit_service_area(unit=self.unit)
        se = sl_utils.create_service_event(unit_service_area=usa)

        data = {
            "fault-occurred": "20 Jan 2021 17:59",
            "fault-unit": self.unit.id,
            "fault-modality": self.unit.modalities.all().first().pk,
            "fault-fault_types_field": [ft.code],
            "fault-comment": "test comment",
            "fault-related_service_events": [se.pk],
        }

        resp = self.client.post(self.create_url, data)
        assert resp.status_code == 302
        assert resp.url == self.list_url
        assert Comment.objects.count() == 1
        assert list(
            Fault.objects.latest('pk').related_service_events.values_list(
                "id", flat=True)) == [se.id]
Ejemplo n.º 25
0
    def test_valid_create_attach(self):
        """Test that creating a fault with all options set works"""

        ft = FaultType.objects.create(code="fault type")

        usa = sl_utils.create_unit_service_area(unit=self.unit)
        se = sl_utils.create_service_event(unit_service_area=usa)

        test_file = SimpleUploadedFile("TESTRUNNER_test_file.json", b"{}")
        data = {
            "fault-occurred": "20 Jan 2021 17:59",
            "fault-unit": self.unit.id,
            "fault-modality": self.unit.modalities.all().first().pk,
            "fault-fault_types_field": [ft.code],
            "fault-comment": "test comment",
            "fault-related_service_events": [se.pk],
            "fault-attachments": [test_file],
        }

        resp = self.client.post(self.create_url, data)
        assert resp.status_code == 302
        assert resp.url == self.list_url
        assert Attachment.objects.count() == 1
        assert Attachment.objects.get(fault=Fault.objects.latest("pk"))
Ejemplo n.º 26
0
    def setUp(self):

        self.factory = RequestFactory()
        self.view = views.CreateServiceEvent.as_view()

        self.default_ses = sl_utils.create_service_event_status(
            is_default=True)
        sl_utils.create_service_event_status()
        qa_utils.create_status(is_default=True)

        now = timezone.now()

        self.u_1 = qa_utils.create_unit(name='u_1')
        self.sa_1 = sl_utils.create_service_area(name='sa_1')
        self.usa_1 = sl_utils.create_unit_service_area(unit=self.u_1,
                                                       service_area=self.sa_1)
        self.tl_1 = qa_utils.create_test_list(name='tl_1')
        self.tli_1_1 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_1, test_collection=self.tl_1),
            test_list=self.tl_1,
            work_completed=now - timezone.timedelta(hours=1))
        self.tli_1_2 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_1, test_collection=self.tl_1),
            test_list=self.tl_1,
            work_completed=now)
        self.se_1 = sl_utils.create_service_event(unit_service_area=self.usa_1)

        self.u_2 = qa_utils.create_unit(name='u_2')
        self.sa_2 = sl_utils.create_service_area(name='sa_2')
        self.usa_2 = sl_utils.create_unit_service_area(unit=self.u_2,
                                                       service_area=self.sa_2)
        self.tl_2 = qa_utils.create_test_list(name='tl_2')
        self.tli_2_1 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_2, test_collection=self.tl_2),
            test_list=self.tl_2,
            work_completed=now - timezone.timedelta(hours=1))
        self.tli_2_2 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_2, test_collection=self.tl_2),
            test_list=self.tl_2,
            work_completed=now)
        self.se_2 = sl_utils.create_service_event(unit_service_area=self.usa_2)

        self.url = reverse('sl_new')
        self.url_delete = reverse('se_delete')
        self.user = create_user(is_superuser=True)

        self.client.login(username='******', password='******')

        perm = Permission.objects.get(codename='can_have_hours')
        user_can_hours = User.objects.get(username='******')
        user_can_hours.user_permissions.add(perm)
        user_group_has_hours = create_user(uname='in_group_with_hours')
        group_has_hours = create_group(name='can_have_hours')
        group_has_hours.permissions.add(perm)
        user_group_has_hours.groups.add(group_has_hours)

        sl_utils.create_third_party()

        group_linked = create_group(name='linked')
        user_group_linked = create_user(uname='user_in_group_linked')
        user_group_linked.groups.add(group_linked)
        self.gl_1 = sl_utils.create_group_linker(group=group_linked)
        self.part = sl_utils.create_part(add_storage=True)

        self.st = sl_utils.create_service_type()

        self.sto = sl_utils.create_storage(quantity=2)
Ejemplo n.º 27
0
 def test_str(self):
     usa = sl_utils.create_unit_service_area(unit=self.u,
                                             service_area=self.sa)
     self.assertTrue(self.u.name in str(usa) and self.sa.name in str(usa))
Ejemplo n.º 28
0
    def setUp(self):

        self.factory = RequestFactory()
        self.view = views.UpdateServiceEvent.as_view()

        self.default_ses = sl_utils.create_service_event_status(
            is_default=True)
        self.approved_ses = sl_utils.create_service_event_status(
            is_review_required=False, rts_qa_must_be_reviewed=True)
        sl_utils.create_service_event_status()
        qa_utils.create_status(is_default=True)

        now = timezone.now()

        self.u_1 = qa_utils.create_unit(name='u_1')
        self.sa_1 = sl_utils.create_service_area(name='sa_1')
        self.usa_1 = sl_utils.create_unit_service_area(unit=self.u_1,
                                                       service_area=self.sa_1)
        self.tl_1 = qa_utils.create_test_list(name='tl_1')
        self.tli_1_1 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_1, test_collection=self.tl_1),
            test_list=self.tl_1,
            work_completed=now - timezone.timedelta(hours=1))
        self.tli_1_2 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_1, test_collection=self.tl_1),
            test_list=self.tl_1,
            work_completed=now)
        self.se_1 = sl_utils.create_service_event(unit_service_area=self.usa_1)

        self.u_2 = qa_utils.create_unit(name='u_2')
        self.sa_2 = sl_utils.create_service_area(name='sa_2')
        self.usa_2 = sl_utils.create_unit_service_area(unit=self.u_2,
                                                       service_area=self.sa_2)
        self.tl_2 = qa_utils.create_test_list(name='tl_2')
        self.tli_2_1 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_2, test_collection=self.tl_2),
            test_list=self.tl_2,
            work_completed=now - timezone.timedelta(hours=1))
        self.tli_2_2 = qa_utils.create_test_list_instance(
            unit_test_collection=qa_utils.create_unit_test_collection(
                unit=self.u_2, test_collection=self.tl_2),
            test_list=self.tl_2,
            work_completed=now)
        self.se_2 = sl_utils.create_service_event(unit_service_area=self.usa_2)

        self.url = reverse('sl_new')
        self.user = create_user(is_superuser=True)

        self.client.login(username='******', password='******')

        perm = Permission.objects.get(codename='can_have_hours')
        user_can_hours = User.objects.get(username='******')
        user_can_hours.user_permissions.add(perm)
        user_group_has_hours = create_user(uname='in_group_with_hours')
        group_has_hours = create_group(name='can_have_hours')
        group_has_hours.permissions.add(perm)
        user_group_has_hours.groups.add(group_has_hours)

        sl_utils.create_third_party()

        group_linked = create_group(name='linked')
        user_group_linked = create_user(uname='user_in_group_linked')
        user_group_linked.groups.add(group_linked)
        self.gl_1 = sl_utils.create_group_linker(group=group_linked)
        self.part = sl_utils.create_part(add_storage=True)

        self.st = sl_utils.create_service_type()

        self.se = sl_utils.create_service_event(
            unit_service_area=self.usa_1,
            service_status=self.default_ses,
            service_type=self.st)

        self.url = reverse('sl_edit', kwargs={"pk": self.se.pk})

        self.data = {
            'datetime_service': format_datetime(timezone.now()),
            'service_status': self.default_ses.id,
            'service_type': self.st.id,
            'is_review_required': 0,
            'safety_precautions': 'safety_precautions',
            'problem_description': 'problem_description',
            'service_area_field': self.se.unit_service_area.service_area.id,
            'unit_field': self.se.unit_service_area.unit.id,
            'unit_field_fake': self.se.unit_service_area.unit.id,
            'qafollowup_notes': 'qafollowup_notes',
            'test_list_instance_initiated_by': self.tli_1_1.id,
            'duration_lost_time': '0100',
            'duration_service_time': '0100',
            'hours-INITIAL_FORMS': 0,
            'hours-MAX_NUM_FORMS': 1000,
            'hours-TOTAL_FORMS': 0,
            'hours-MIN_NUM_FORMS': 0,
            'parts-INITIAL_FORMS': 0,
            'parts-MAX_NUM_FORMS': 1000,
            'parts-TOTAL_FORMS': 0,
            'parts-MIN_NUM_FORMS': 0,
            'rtsqa-INITIAL_FORMS': 0,
            'rtsqa-MAX_NUM_FORMS': 1000,
            'rtsqa-TOTAL_FORMS': 0,
            'rtsqa-MIN_NUM_FORMS': 0,
        }
Ejemplo n.º 29
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit1 = utils.create_unit(site=site)
        usa1 = sl_utils.create_unit_service_area(unit=unit1)
        sl_utils.create_service_event(unit_service_area=usa1)

        unit2 = utils.create_unit()
        usa2 = sl_utils.create_unit_service_area(unit=unit2)
        se = sl_utils.create_service_event(unit_service_area=usa2)
        se2 = sl_utils.create_service_event(unit_service_area=usa2)
        se.service_event_related.add(se2)

        sl_utils.create_hours(service_event=se)
        sl_utils.create_return_to_service_qa(service_event=se)
        sl_utils.create_group_linker_instance(service_event=se)
        part = sl_utils.create_part()

        parts_models.PartUsed.objects.create(service_event=se, part=part, quantity=1)

        attachment = Attachment(
            attachment=ContentFile("content", "content.pdf"),
            created_by=se.user_created_by,
            serviceevent=se,
        )
        attachment.save()

        rep = sl.ServiceEventDetailsReport(report_opts={'include_description': True})
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_row = table.index([
            _("Service Event ID"),
            _("Service Date"),
            _("Site"),
            _("Unit"),
            _("Service Area"),
            _("Service Type"),
            _("Service Time"),
            _("Lost Time"),
            _("Status"),
            _("Created By"),
            _("Created Date"),
            _("Modified By"),
            _("Modified Date"),
            _("Problem Description"),
            _("Work Description"),
            _("Safety Precautions"),
            _("Initiated By"),
            _("Related Service Events"),
            _("Group Members Involved"),
            _("Work Durations"),
            _("Return To Service QC"),
            _("Return To Service Comments"),
            _("Parts Used"),
            _("Attachments"),
            _("Link"),
        ])
        # should be three ses after header
        assert len(table[header_row + 1:]) == 3