Exemplo n.º 1
0
 def test_send_notice_no_recipients(self):
     utils.create_test_list_instance()
     self.recipients.groups.clear()
     tasks.send_qcreview_notice(self.notice.pk)
     self.notice.refresh_from_db()
     assert self.notice.last_sent is None
     assert len(mail.outbox) == 0
Exemplo n.º 2
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        utils.create_test_list_instance(unit_test_collection=utc)

        unit2 = utils.create_unit(site=None)
        utc2 = utils.create_unit_test_collection(unit=unit2)
        utils.create_test_list_instance(unit_test_collection=utc2)

        rep = qc.NextDueDatesReport()
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_count = table.count([
            _("Unit"),
            _("Name"),
            _("Frequency"),
            _("Due Date"),
            _("Window"),
            _("Assigned To"),
            _("Perform")
        ])
        assert header_count == 2
Exemplo n.º 3
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        utils.create_test_list_instance(unit_test_collection=utc)

        unit2 = utils.create_unit(site=None)
        utc2 = utils.create_unit_test_collection(unit=unit2)
        utils.create_test_list_instance(unit_test_collection=utc2)

        rep = qc.TestListInstanceSummaryReport()
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        header_row = table.index([
            'Site',
            'Unit',
            'Test list',
            'Due Date',
            'Work Completed',
            'Pass/Fail Status',
            'Link',
        ])
        # should be two tlis after header
        assert len(table[header_row + 1:]) == 2
Exemplo n.º 4
0
    def test_get_tlis_for_site(self):
        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)

        unit2 = utils.create_unit(site=None)
        utc2 = utils.create_unit_test_collection(unit=unit2)
        utils.create_test_list_instance(unit_test_collection=utc2)

        qs = TestListInstance.objects.all()
        tlis = qc.TestListInstanceSummaryReport().get_tlis_for_site(qs, site)
        assert list([x.pk for x in tlis]) == [tli.pk]
Exemplo n.º 5
0
    def test_tli_statuses(self):

        tli = qa_utils.create_test_list_instance(unit_test_collection=self.utc)
        qa_utils.create_test_instance(test_list_instance=tli)
        qa_utils.create_test_instance(test_list_instance=tli)

        expected = json.loads(
            json.dumps(
                {
                    'pass_fail':
                    tli.pass_fail_summary(),
                    'review':
                    tli.review_summary(),
                    'datetime':
                    timezone.localtime(tli.created).replace(microsecond=0),
                    'all_reviewed':
                    int(tli.all_reviewed),
                    'work_completed':
                    timezone.localtime(
                        tli.work_completed).replace(microsecond=0),
                    'in_progress':
                    tli.in_progress,
                },
                cls=DjangoJSONEncoder,
            ))

        data = {'tli_id': tli.id}

        response = self.client.get(reverse('tli_statuses'), data=data)

        self.assertDictEqual(expected, response.json())
Exemplo n.º 6
0
def create_return_to_service_qa(service_event=None,
                                unit_test_collection=None,
                                user_assigned_by=None,
                                datetime_assigned=timezone.now(),
                                add_test_list_instance=False):

    if service_event is None:
        service_event = create_service_event()
    if unit_test_collection is None:
        unit_test_collection = qa_utils.create_unit_test_collection()
    if user_assigned_by is None:
        user_assigned_by = create_user()

    rtsqa, _ = models.ReturnToServiceQA.objects.get_or_create(
        service_event=service_event,
        unit_test_collection=unit_test_collection,
        user_assigned_by=user_assigned_by,
        datetime_assigned=datetime_assigned)

    if add_test_list_instance:
        if isinstance(add_test_list_instance, qa_models.TestListInstance):
            tli = add_test_list_instance
        else:
            tli = qa_utils.create_test_list_instance(
                unit_test_collection=unit_test_collection)
        rtsqa.test_list_instance = tli
        rtsqa.save()

    return rtsqa
Exemplo n.º 7
0
    def test_to_table_group_by_unit_test_date_csv(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        ti = utils.create_test_instance(test_list_instance=tli)
        utils.create_test_instance(
            test_list_instance=tli,
            unit_test_info=ti.unit_test_info,
            work_completed=tli.work_completed - timezone.timedelta(days=1),
        )
        ti3 = utils.create_test_instance(
            test_list_instance=tli,
            work_completed=tli.work_completed - timezone.timedelta(days=1),
        )

        rep = qc.TestInstanceDetailsReport(
            report_opts={
                'unit_test_info__test':
                [ti.unit_test_info.test.pk, ti3.unit_test_info.test.pk],
                'organization':
                'group_by_unit_test_date'
            })
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)
        org_row = table.index(['Organization:', 'Group by Unit/Test/Date'])

        # should be two rows after blank row
        assert len(table[org_row + 2:]) == 2
        # and 11 columns
        assert len(table[org_row + 3]) == 11
Exemplo n.º 8
0
    def test_to_table_one_per_row_csv(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        ti = utils.create_test_instance(test_list_instance=tli)
        utils.create_test_instance(
            test_list_instance=tli,
            unit_test_info=ti.unit_test_info,
            work_completed=tli.work_completed - timezone.timedelta(days=1),
        )

        rep = qc.TestInstanceDetailsReport(
            report_opts={
                'unit_test_info__test': [ti.unit_test_info.test.pk],
                'organization': 'one_per_row'
            })
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)
        header_row = table.index([
            _("Work Completed"),
            _("Test"),
            _("Unit"),
            _("Site"),
            _("Value"),
            _("Reference"),
            _("Tolerance"),
            _("Skipped"),
            _("Performed By"),
            _("Comment"),
        ])
        # should be two tis after header
        assert len(table[header_row + 1:]) == 2
Exemplo n.º 9
0
    def create_test_list_instance(self, utc=None, all_passing=False):
        utc = utc or self.unit_test_collection

        tli = utils.create_test_list_instance(unit_test_collection=utc)

        for i, (v, test, status) in enumerate(
                zip(self.values, self.tests, self.statuses)):
            uti = models.UnitTestInfo.objects.get(test=test, unit=utc.unit)
            ti = utils.create_test_instance(tli,
                                            unit_test_info=uti,
                                            value=v,
                                            status=status)
            ti.reference = self.ref
            ti.tolerance = self.tol
            if i == 0:
                ti.skipped = True
            if i == 1 or all_passing:
                ti.tolerance = None
                ti.reference = None
            else:
                ti.reference.save()
                ti.tolerance.save()

            ti.save()

        tli.save()
        return tli
Exemplo n.º 10
0
 def test_get_work_completed_plain(self):
     rep = qc.TestListInstanceSummaryReport()
     rep.report_format = "csv"
     tz = pytz.timezone("America/Toronto")
     work_completed = tz.localize(timezone.datetime(2019, 1, 1, 12))
     tli = utils.create_test_list_instance(work_completed=work_completed)
     wc = rep.get_work_completed(tli)
     assert "01 Jan 2019" in wc
     assert "href" not in wc
Exemplo n.º 11
0
    def test_generate_due_and_overdue_html(self):
        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        utils.create_test_instance(test_list_instance=tli)

        rep = qc.DueAndOverdueQCReport()
        rep.report_format = "pdf"
        rep.to_html()
Exemplo n.º 12
0
 def test_send_notice(self):
     self.tli1 = utils.create_test_list_instance(
         unit_test_collection=self.utc1)
     self.tli1.all_reviewed = False
     self.tli1.save()
     now = timezone.now()
     tasks.send_qcreview_notice(self.notice.pk)
     self.notice.refresh_from_db()
     assert self.notice.last_sent >= now
     assert "QATrack+ Unreviewed QC Notice:" in mail.outbox[0].subject
Exemplo n.º 13
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)
Exemplo n.º 14
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))
Exemplo n.º 15
0
    def test_generate_html(self):
        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        utils.create_test_list_instance(unit_test_collection=utc)

        unit2 = utils.create_unit(site=None)
        utc2 = utils.create_unit_test_collection(unit=unit2)
        tli2 = utils.create_test_list_instance(unit_test_collection=utc2)
        comment = Comment(
            submit_date=timezone.now(),
            user=tli2.created_by,
            content_object=tli2,
            comment='test comment',
            site=Site.objects.latest("pk"),
        )
        comment.save()

        rep = qc.TestListInstanceDetailsReport(
            report_opts={'unit_test_collection': [utc.pk]})
        rep.report_format = "pdf"
        rep.to_html()
Exemplo n.º 16
0
    def setUp(self):

        self.unit1 = utils.create_unit(name="unit1", number=1)
        self.unit2 = utils.create_unit(name="unit2", number=2)
        self.utc1 = utils.create_unit_test_collection(unit=self.unit1)
        self.utc2 = utils.create_unit_test_collection(unit=self.unit2)

        self.tli1 = utils.create_test_list_instance(
            unit_test_collection=self.utc1)
        self.tli1.all_reviewed = False
        self.tli1.save()
        self.tli2 = utils.create_test_list_instance(
            unit_test_collection=self.utc2)
        self.tli2.all_reviewed = True
        self.tli2.save()

        self.testlist_group = TestListGroup.objects.create(name="test group")
        self.testlist_group.test_lists.add(self.utc1.tests_object)

        self.unit_group = UnitGroup.objects.create(name="test group")
        self.unit_group.units.add(self.utc1.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()
Exemplo n.º 17
0
    def test_generate_html_one_per_row(self):
        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        ti = utils.create_test_instance(test_list_instance=tli)

        rep = qc.TestInstanceDetailsReport(
            report_opts={
                'unit_test_info__test': [ti.unit_test_info.test.pk],
                'organization': 'one_per_row'
            })
        rep.report_format = "pdf"
        rep.to_html()
Exemplo n.º 18
0
    def test_generate_html_group_by_unit_test_date(self):
        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        ti = utils.create_test_instance(test_list_instance=tli)

        rep = qc.TestInstanceDetailsReport(
            report_opts={
                'unit_test_info__test': [ti.unit_test_info.test.pk],
                'organization': 'group_by_unit_test_date'
            })
        rep.report_format = "pdf"
        assert 'not supported for' in rep.to_html()
Exemplo n.º 19
0
def create_service_event(unit_service_area=None,
                         service_type=None,
                         service_status=None,
                         user_created_by=None,
                         datetime_service=timezone.now(),
                         problem_description='problem_description',
                         is_review_required=False,
                         datetime_created=timezone.now(),
                         add_test_list_instance_initiated_by=False,
                         service_time=None,
                         lost_time=None):

    if unit_service_area is None:
        unit_service_area = create_unit_service_area()
    if service_type is None:
        service_type = create_service_type()
    if service_status is None:
        service_status = create_service_event_status()
    if user_created_by is None:
        user_created_by = create_user()

    se, _ = models.ServiceEvent.objects.get_or_create(
        unit_service_area=unit_service_area,
        service_type=service_type,
        service_status=service_status,
        user_created_by=user_created_by,
        datetime_service=datetime_service,
        problem_description=problem_description,
        is_review_required=is_review_required,
        datetime_created=datetime_created,
        duration_service_time=service_time,
        duration_lost_time=lost_time)

    if add_test_list_instance_initiated_by:
        if isinstance(add_test_list_instance_initiated_by,
                      qa_models.TestListInstance):
            se.test_list_instance_initiated_by = add_test_list_instance_initiated_by
        else:
            utc = qa_utils.create_unit_test_collection(
                unit=unit_service_area.unit)
            se.test_list_instance_initiated_by = qa_utils.create_test_list_instance(
                unit_test_collection=utc)
        se.save()

    return se
Exemplo n.º 20
0
    def create_test_list_instance(self):
        utc = self.unit_test_collection

        tli = utils.create_test_list_instance(unit_test_collection=utc)

        for i, (v, test, status) in enumerate(zip(self.values, self.tests, self.statuses)):
            uti = models.UnitTestInfo.objects.get(test=test, unit=utc.unit)
            ti = utils.create_test_instance(unit_test_info=uti, value=v, status=status)
            ti.reference = self.ref
            ti.tolerance = self.tol
            ti.test_list_instance = tli
            if i == 0:
                ti.skipped = True
            elif i == 1:
                ti.tolerance = None
                ti.reference = None

            ti.save()
        tli.save()
        return tli
Exemplo n.º 21
0
    def setUp(self):
        self.user = create_user(is_superuser=True, uname='user', pwd='pwd')
        self.client.login(username='******', password='******')

        self.c_1 = qa_utils.create_category()
        self.t_1 = qa_utils.create_test()
        self.tl_1 = qa_utils.create_test_list()
        qa_utils.create_test_list_membership(test=self.t_1, test_list=self.tl_1)
        self.tli_1 = qa_utils.create_test_list_instance(test_list=self.tl_1)
        self.ti_1 = qa_utils.create_test_instance(
            test_list_instance=self.tli_1, unit_test_info=qa_utils.create_unit_test_info(test=self.t_1), value=1
        )

        self.url_add = reverse(
            'admin:%s_%s_add' % (qa_models.Test._meta.app_label, qa_models.Test._meta.model_name)
        )
        self.url_list = reverse(
            'admin:%s_%s_changelist' % (qa_models.Test._meta.app_label, qa_models.Test._meta.model_name)
        )
        self.url_change = reverse(
            'admin:%s_%s_change' % (qa_models.Test._meta.app_label, qa_models.Test._meta.model_name),
            args=[self.t_1.id]
        )

        self.data = {
            'procedure': '',
            'category': self.c_1.id,
            'attachment_set-MIN_NUM_FORMS': 0,
            'attachment_set-INITIAL_FORMS': 0,
            'attachment_set-MAX_NUM_FORMS': 0,
            'attachment_set-TOTAL_FORMS': 0,
            'chart_visibility': 'on',
            'constant_value': '',
            'description': '',
            'slug': '',
            'type': 'simple',
            'calculation_procedure': '',
            'choices': '',
            'name': ''
        }
Exemplo n.º 22
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]
        )
Exemplo n.º 23
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)
Exemplo n.º 24
0
    def test_to_table(self):

        site = USite.objects.create(name="site")
        unit = utils.create_unit(site=site)
        utc = utils.create_unit_test_collection(unit=unit)
        tli = utils.create_test_list_instance(unit_test_collection=utc)
        # make this tli autoreviewed
        tli.all_reviewed = True
        tli.reviewed_by = None
        tli.save()

        unit2 = utils.create_unit(site=None)
        utc2 = utils.create_unit_test_collection(unit=unit2)
        tli2 = utils.create_test_list_instance(unit_test_collection=utc2)

        # give tli2 some history
        tli3 = utils.create_test_list_instance(
            unit_test_collection=utc2,
            work_completed=tli2.work_completed - timezone.timedelta(days=2),
        )
        ti = utils.create_test_instance(test_list_instance=tli3)

        # tli comment
        comment = Comment(
            submit_date=timezone.now(),
            user=tli2.created_by,
            content_object=tli2,
            comment='test comment',
            site=Site.objects.latest("pk"),
        )
        comment.save()

        attachment = Attachment(
            attachment=ContentFile("content", "content.pdf"),
            created_by=tli.created_by,
            testlistinstance=tli2,
        )
        attachment.save()

        attachment = Attachment(
            attachment=ContentFile("content", "content.pdf"),
            created_by=tli.created_by,
            testinstance=ti,
        )
        attachment.save()

        rep = qc.TestListInstanceDetailsReport(
            report_opts={'unit_test_collection': [utc.pk, utc2.pk]})
        rep.report_format = "csv"
        context = rep.get_context()
        table = rep.to_table(context)

        ntlis = table.count([
            _('Test'),
            _('Value'),
            _('Reference'),
            _('Tolerance'),
            _('Pass/Fail'),
            _('Review Status'),
            _('Comment'),
            _('Attachments'),
        ])

        # should be three tlis
        assert ntlis == 3
Exemplo n.º 25
0
 def test_get_pass_fail_html(self):
     rep = qc.TestListInstanceSummaryReport()
     rep.report_format = "html"
     tli = utils.create_test_list_instance()
     pf = rep.get_pass_fail_status(tli)
     assert "<span" in pf
Exemplo n.º 26
0
 def test_get_pass_fail_plain(self):
     rep = qc.TestListInstanceSummaryReport()
     rep.report_format = "csv"
     tli = utils.create_test_list_instance()
     pf = rep.get_pass_fail_status(tli)
     assert pf == ''  # no test instances, just want to make sure no html tags in status for plain text report
Exemplo n.º 27
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,
        }