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, }
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)