def test_reviewed_filter(self): fault_utils.create_fault_review() rep = faults.FaultDetailsReport( report_opts={'review_status': "reviewed"}) rep.report_format = "csv" context = rep.get_context() assert len(context['sites_data'][0][1]) == 1
def test_unreviewed(self): """Two Faults created, only the unreviewed should be returned by the unreviewed manager""" utils.create_fault_review() unreviewed = utils.create_fault() assert Fault.objects.unreviewed().count() == 1 assert Fault.objects.unreviewed().all()[0].pk == unreviewed.pk
def test_to_table_reviewed(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) fault_rev = fault_utils.create_fault_review(fault=fault2) comment = Comment(submit_date=timezone.now(), user=fault_rev.reviewed_by, content_object=fault_rev.fault, comment="comment", site=get_current_site(None)) comment.save() rep = faults.FaultSummaryReport( report_opts={'review_status': "reviewed"}) 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"), _("Link"), ]) # should be one fault after header assert len(table[header_row + 1:]) == 1
def test_unreview_fault(self): fault = utils.create_fault_review().fault review_url = reverse("fault_review", kwargs={'pk': fault.pk}) resp = self.client.post(review_url) assert resp.status_code == 302 fault.refresh_from_db() assert fault.faultreviewinstance_set.first() is None
def test_upcoming_both_unreviewed_unit_group(self): utils.create_fault_review(fault=self.fault2, reviewed_by=self.user) notice = FaultsReviewNotice.objects.create( recipients=self.recipients, units=self.unit_group, notification_type=FaultsReviewNotice.UNREVIEWED, time="0:00", ) expected = [ { 'unit__name': self.unit1.name, 'fault_types__code': self.fault1.fault_types.first().code, 'unit__name__count': 1, 'fault_types__code__count': 1, }, ] assert list(notice.faults_by_unit_fault_type()) == expected
def test_edit_with_changed_reviews(self): """Test that editing a fault with existing reviewer works""" FaultType.objects.create(code="fault type") fault = utils.create_fault(user=self.user) rev_group = utils.create_fault_review_group() utils.create_fault_review(fault=fault, review_group=rev_group, reviewed_by=self.user) self.user.groups.add(rev_group.group) new_u = qa_utils.create_user() new_u.groups.add(rev_group.group) modality = u_models.Modality.objects.create(name="modality") fault.unit.modalities.add(modality) edit_url = reverse("fault_edit", kwargs={'pk': fault.pk}) se = sl_utils.create_service_event() fault.related_service_events.add(se) data = { "fault-occurred": format_datetime(fault.occurred), "fault-unit": fault.unit.id, "fault-modality": modality.pk, "fault-fault_types_field": [fault.fault_types.first().code], "fault-comment": "", "fault-related_service_events": [se.pk], "review-form-0-group": rev_group.group.name, "review-form-0-reviewed_by": new_u.pk, } assert list( fault.faultreviewinstance_set.values_list( "reviewed_by_id", flat=True)) == [self.user.pk] resp = self.client.post(edit_url, data) assert resp.status_code == 302 fault.refresh_from_db() assert fault.faultreviewinstance_set.count() == 1 assert list( fault.faultreviewinstance_set.values_list( "reviewed_by_id", flat=True)) == [new_u.pk]
def test_send_notice_not_empty(self): for fault in Fault.objects.all(): utils.create_fault_review(fault=fault, reviewed_by=self.user) tasks.send_faultsreview_notice(self.notice.pk) self.notice.refresh_from_db() assert len(mail.outbox) == 0
def test_review_complete_required_complete(self): rg_required = utils.create_fault_review_group() utils.create_fault_review_group(required=False) review = utils.create_fault_review(review_group=rg_required) assert review.fault.review_complete()
def test_review_details_no_review_groups(self): review = utils.create_fault_review(review_group=False) assert review.fault.review_details() == [(None, review.reviewed_by, review.reviewed, False)]