Esempio 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()
Esempio n. 2
0
    def test_delete_returntoserviceqa_variables(self):

        # unit_test_collection  > Cascade
        # test_list_instance    > Set Null
        # user_assigned_by      > Protect
        # service_event         > Cascade

        sl_utils.create_service_event_status(is_default=True)
        rtsqa = sl_utils.create_return_to_service_qa()
        utc = rtsqa.unit_test_collection
        rtsqa_id = rtsqa.id

        utc.delete()
        self.assertFalse(
            sl_models.ReturnToServiceQA.objects.filter(id=rtsqa_id).exists())

        rtsqa = sl_utils.create_return_to_service_qa(
            add_test_list_instance=True)
        tli = rtsqa.test_list_instance
        u = rtsqa.user_assigned_by
        se = rtsqa.service_event
        rtsqa_id = rtsqa.id

        with self.assertRaises(ProtectedError):
            u.delete()

        tli.delete()
        rtsqa = sl_models.ReturnToServiceQA.objects.get(id=rtsqa_id)
        self.assertEqual(None, rtsqa.test_list_instance)

        se.delete()
        self.assertFalse(
            sl_models.ReturnToServiceQA.objects.filter(id=rtsqa_id).exists())
Esempio n. 3
0
    def test_colours(self):

        ses_01 = sl_utils.create_service_event_status(
            colour=settings.DEFAULT_COLOURS[1])
        ses_02 = sl_utils.create_service_event_status(
            colour=settings.DEFAULT_COLOURS[2])

        colours = sl_models.ServiceEventStatus.get_colour_dict()

        self.assertEqual(colours[ses_01.id], settings.DEFAULT_COLOURS[1])
        self.assertEqual(colours[ses_02.id], settings.DEFAULT_COLOURS[2])
Esempio n. 4
0
    def test_qa_urls(self):

        sl_utils.create_service_event_status(is_default=True)
        qa_utils.create_status(is_default=True)
        se = sl_utils.create_service_event()
        u = qa_utils.create_unit()
        utc = qa_utils.create_unit_test_collection(unit=u)
        tli = qa_utils.create_test_list_instance(unit_test_collection=utc)

        url_names_200 = (
            ('sl_dash', {}, ''),
            ('sl_new', {}, ''),
            ('sl_edit', {
                'pk': se.id
            }, ''),
            ('sl_details', {
                'pk': se.id
            }, ''),
            ('sl_list_all', {}, ''),
            ('rtsqa_list_for_event', {
                'se_pk': se.id
            }, ''),
            ('se_searcher', {}, '?q=%d&unit_id=%d' % (se.id, u.id)),
            ('tli_select', {
                'pk': utc.id,
                'form': 'a_form'
            }, ''),
            ('tli_statuses', {}, '?tli_id=%d' % tli.id),
            ('unit_sa_utc', {}, '?unit_id=%d' % u.id),
            ('err', {}, ''),
            ('sl_unit_new', {}, ''),
            ('sl_unit_view_se', {}, ''),
            ('se_down_time', {}, ''),
            ('handle_unit_down_time', {}, ''),
        )

        url_names_404 = (
            # Test urls that expect kwargs when not given any
            # (reverse should render url for use in templates, but return 404)
            ('sl_details', {}, ''),
            ('tli_select', {}, ''),
            ('se_searcher', {}, ''),
            ('tli_statuses', {}, ''),
            ('unit_sa_utc', {}, ''),
        )

        for url, kwargs, q in url_names_200:
            self.assertTrue(self.returns_code(reverse(url, kwargs=kwargs) + q))

        for url, kwargs, q in url_names_404:
            self.assertTrue(
                self.returns_code(reverse(url, kwargs=kwargs) + q, code=404))
Esempio n. 5
0
    def test_delete_serviceevent_variables(self):

        # unit_service_area                 > Protect
        # service_type                      > Protect
        # service_status                    > Protect
        # user_status_changed_by            > Protect
        # user_created_by                   > Protect
        # user_modified_by                  > Protect
        # test_list_instance_initiated_by   > Set Null

        sl_utils.create_service_event_status(is_default=True)
        ses = sl_utils.create_service_event_status()
        se = sl_utils.create_service_event(
            add_test_list_instance_initiated_by=True, service_status=ses)
        se.user_status_changed_by = create_user()
        se.user_modified_by = create_user()
        se.save()
        se_id = se.id

        usa = se.unit_service_area
        st = se.service_type
        u_scb = se.user_status_changed_by
        u_cb = se.user_created_by
        u_mb = se.user_modified_by
        tli = se.test_list_instance_initiated_by

        with self.assertRaises(ProtectedError):
            usa.delete()

        with self.assertRaises(ProtectedError):
            st.delete()

        with self.assertRaises(ProtectedError):
            ses.delete()

        with self.assertRaises(ProtectedError):
            u_scb.delete()

        with self.assertRaises(ProtectedError):
            u_cb.delete()

        with self.assertRaises(ProtectedError):
            u_mb.delete()

        tli.delete()
        se = sl_models.ServiceEvent.objects.get(id=se_id)
        self.assertEqual(None, se.test_list_instance_initiated_by)
Esempio n. 6
0
    def test_unreviewed_rtsqa(self):

        ses_approved = sl_utils.create_service_event_status(
            name='Approved',
            is_review_required=False,
            rts_qa_must_be_reviewed=True)

        test_status = qa_utils.create_status()
        tl = qa_utils.create_test_list()
        t = qa_utils.create_test()
        qa_utils.create_test_list_membership(tl, t)

        tli_unreviewed = qa_utils.create_test_list_instance(test_list=tl)
        qa_utils.create_test_instance(
            tli_unreviewed,
            unit_test_info=qa_utils.create_unit_test_info(unit=self.u_1),
            status=test_status)

        data = {
            'datetime_service': format_datetime(timezone.now()),
            'unit_field': self.u_1.id,
            'service_area_field': self.sa_1.id,
            'service_type': self.st.id,
            'problem_description': 'problem',
            'service_status': ses_approved.id,
            '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': 1,
            'rtsqa-MIN_NUM_FORMS': 0,
            'rtsqa-0-all_reviewed': tli_unreviewed.all_reviewed,
            'rtsqa-0-unit_test_collection':
            tli_unreviewed.unit_test_collection.id,
            'rtsqa-0-test_list_instance': tli_unreviewed.id,
            'rtsqa-0-id': '',
        }

        response = self.client.post(self.url, data=data)
        self.assertTrue(
            'service_status' in response.context_data['form'].errors)

        data['rtsqa-0-all_reviewed'] = ''
        data['rtsqa-0-test_list_instance'] = ''

        response = self.client.post(self.url, data=data)
        self.assertTrue(
            'service_status' in response.context_data['form'].errors)
Esempio n. 7
0
    def create_objects(self):

        se_requires_review = sl_utils.create_service_event(
            is_review_required=True)
        ses_default = sl_utils.create_service_event_status(is_default=True)
        se_default_status = sl_utils.create_service_event(
            service_status=ses_default)
        sl_utils.create_return_to_service_qa(
            add_test_list_instance=True)  # qa_not_reviewed +1
        sl_utils.create_return_to_service_qa()  # qa_not_complete +1
        sl_utils.create_return_to_service_qa(
            service_event=se_requires_review
        )  # se_needing_review +1, qa_not_complete +1
        sl_utils.create_return_to_service_qa(
            service_event=se_default_status
        )  # se_default +1, qa_not_complete +1

        self.user = create_user(is_superuser=True, uname='person')
Esempio n. 8
0
 def setUp(self):
     self.ses = sl_utils.create_service_event_status()
Esempio n. 9
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,
        }
Esempio n. 10
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)