Exemple #1
0
    def test_edit_with_invalid_reviews(self):
        """Test that editing a fault and adding a reviewer works"""

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

        fault = utils.create_fault(user=self.user)
        rev_group = utils.create_fault_review_group()
        self.user.groups.add(rev_group.group)
        assert fault.modality is None

        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": "",
        }

        assert fault.faultreviewinstance_set.count() == 0
        resp = self.client.post(edit_url, data)
        assert resp.status_code == 200
        assert resp.context['review_forms'][0].errors['reviewed_by']
Exemple #2
0
 def test_with_review_groups_with_perm(self):
     frg = utils.create_fault_review_group()
     user = qa_utils.create_user()
     p = Permission.objects.get(name="Can review faults")
     user.user_permissions.add(p)
     user.groups.add(frg.group)
     assert can_review_faults(user)
Exemple #3
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
Exemple #4
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]
Exemple #5
0
    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]
Exemple #6
0
    def test_create_ajax_valid(self):
        """Test that creating a fault via ajax (e.g. from perform test list instance page) works"""

        ft = FaultType.objects.create(code="fault type")
        rev_group = utils.create_fault_review_group(required=False)
        self.user.groups.add(rev_group.group)

        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",
            "review-form-0-group": rev_group.group.name,
            "review-form-0-reviewed_by": self.user.pk,
        }

        resp = self.client.post(self.ajax_url, data=data)
        assert resp.status_code == 200
        assert not resp.json()['error']
        assert Comment.objects.count() == 1
Exemple #7
0
 def test_with_review_groups_no_perm(self):
     utils.create_fault_review_group()
     user = qa_utils.create_user()
     assert not can_review_faults(user)
Exemple #8
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()