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 test_with_rts_and_service_type(self):
        """If we filter for a unit, and service type, the searcher should only return
        templates where the return to service test lists are all
        assigned to that unit and the template has the correct service_type."""

        st = sl_utils.create_service_type()
        tl1 = qa_utils.create_test_list()
        tl2 = qa_utils.create_test_list()
        u1 = qa_utils.create_unit()
        qa_utils.create_unit_test_collection(unit=u1, test_collection=tl1)

        # one template with RTS that is assigned to the unit
        t1 = self.create_template("1", service_type=st)
        t1.return_to_service_test_lists.add(tl1)

        # one template with RTS that is not assigned to the unit
        t2 = self.create_template("2", service_type=st)
        t2.return_to_service_test_lists.add(tl2)

        # one template with no RTS and correct service_type
        t3 = self.create_template("3", service_type=st)

        # one template with no RTS and no service_type
        self.create_template("4")

        resp = self.client.get(self.url,
                               data={
                                   'unit': u1.pk,
                                   'service_type': st.pk
                               })
        data = resp.json()
        assert len(data) == 2
        assert [t['id'] for t in data] == [t1.id, t3.id]
Ejemplo n.º 3
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.º 4
0
    def test_with_service_type(self):
        """If we filter for service type, the searcher should only return
        templates where the service_type is correct"""

        # one template with correct service type
        st1 = sl_utils.create_service_type()
        t1 = self.create_template("1", service_type=st1)

        # one template with incorrect service type
        st2 = sl_utils.create_service_type()
        self.create_template("2", service_type=st2)

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

        resp = self.client.get(self.url,
                               data={
                                   'unit': self.unit.id,
                                   'service_type': st1.pk
                               })
        data = resp.json()
        assert len(data) == 1
        assert data[0]['id'] == t1.id
Ejemplo n.º 5
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.º 6
0
    def test_submit_valid(self):

        st = sl_utils.create_service_type()

        user = User.objects.filter(groups=self.gl_1.group).first()
        user.user_permissions.add(
            Permission.objects.get(codename='can_have_hours'))

        data = {
            'datetime_service':
            format_datetime(timezone.now()),
            'unit_field':
            self.u_1.id,
            'unit_field_fake':
            self.u_1.id,
            'service_area_field':
            self.usa_1.service_area.id,
            'service_type':
            st.id,
            'problem_description':
            'uhhhhh ohhhh',
            'work_description':
            'stuff was done',
            'safety_precautions':
            'we were careful',
            'qafollowup_notes':
            'comment',
            'service_event_related_field':
            [sl_utils.create_service_event(unit_service_area=self.usa_1).id],
            'service_status':
            models.ServiceEventStatus.get_default().id,
            'test_list_instance_initiated_by':
            self.tli_1_1.id,
            'duration_service_time':
            '4321',
            'duration_lost_time':
            '1234',
            'initiated_utc_field':
            self.tli_1_1.unit_test_collection.id,
            'group_linker_1':
            user.id,
            'hours-INITIAL_FORMS':
            0,
            'hours-MAX_NUM_FORMS':
            1000,
            'hours-TOTAL_FORMS':
            1,
            'hours-MIN_NUM_FORMS':
            0,
            'parts-INITIAL_FORMS':
            0,
            'parts-MAX_NUM_FORMS':
            1000,
            'parts-TOTAL_FORMS':
            1,
            'parts-MIN_NUM_FORMS':
            0,
            'rtsqa-INITIAL_FORMS':
            0,
            'rtsqa-MAX_NUM_FORMS':
            1000,
            'rtsqa-TOTAL_FORMS':
            1,
            'rtsqa-MIN_NUM_FORMS':
            0,
            'hours-0-time':
            '100',
            'hours-0-user_or_thirdparty':
            'user-%s' % user.id,
            'rtsqa-0-all_reviewed':
            self.tli_1_2.all_reviewed,
            'rtsqa-0-unit_test_collection':
            self.tli_1_2.unit_test_collection.id,
            'rtsqa-0-test_list_instance':
            self.tli_1_2.id,
            'parts-0-quantity':
            1,
            'parts-0-part':
            self.part.id,
            'parts-0-from_storage':
            self.part.storage.all().first().id
        }

        se_count = models.ServiceEvent.objects.count()
        response = self.client.post(self.url, data=data)

        se_id = models.ServiceEvent.objects.filter(
            problem_description='uhhhhh ohhhh').first().id

        self.assertEqual(se_count + 1, models.ServiceEvent.objects.count())
        self.assertEqual(
            1,
            p_models.PartUsed.objects.filter(service_event=se_id).count())
        self.assertEqual(
            1,
            models.ReturnToServiceQA.objects.filter(
                service_event=se_id).count())
        self.assertEqual(
            1,
            models.Hours.objects.filter(service_event=se_id).count())

        self.assertEqual(response.status_code, 302)
Ejemplo n.º 7
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)