示例#1
0
 def run_fail_validation_test(self, params, errors):
     base_params = self.valid_params.copy()
     base_params.update(params)
     serializer = AlertRuleTriggerSerializer(context=self.context,
                                             data=base_params)
     assert not serializer.is_valid()
     assert serializer.errors == errors
 def test_validation_no_params(self):
     serializer = AlertRuleTriggerSerializer(context=self.context, data={})
     assert not serializer.is_valid()
     field_is_required = ["This field is required."]
     assert serializer.errors == {
         "label": field_is_required,
         "alertThreshold": field_is_required,
     }
示例#3
0
 def _run_changed_fields_test(self, trigger, params, expected):
     serializer = AlertRuleTriggerSerializer(context=self.context,
                                             instance=trigger,
                                             data=params,
                                             partial=True)
     assert serializer.is_valid(), serializer.errors
     assert serializer._remove_unchanged_fields(
         trigger, serializer.validated_data) == expected
    def put(self, request, organization, alert_rule, alert_rule_trigger):
        serializer = AlertRuleTriggerSerializer(
            context={
                "organization": organization,
                "alert_rule": alert_rule,
                "access": request.access,
            },
            instance=alert_rule_trigger,
            data=request.data,
            partial=True,
        )

        if serializer.is_valid():
            trigger = serializer.save()
            return Response(serialize(trigger, request.user),
                            status=status.HTTP_200_OK)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def post(self, request, organization, alert_rule):
        """
        Create a trigger on an alert rule
        """
        if not features.has(
                "organizations:incidents", organization, actor=request.user):
            raise ResourceDoesNotExist

        serializer = AlertRuleTriggerSerializer(
            context={
                "organization": organization,
                "alert_rule": alert_rule,
                "access": request.access,
            },
            data=request.data,
        )

        if serializer.is_valid():
            trigger = serializer.save()
            return Response(serialize(trigger, request.user),
                            status=status.HTTP_201_CREATED)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)