Skip to content

Commit

Permalink
Update error message
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewelwell committed Jul 23, 2024
1 parent 82e1783 commit c74be59
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
22 changes: 15 additions & 7 deletions api/features/versioning/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
)
from features.versioning.models import EnvironmentFeatureVersion
from integrations.github.github import call_github_task
from segments.models import Segment
from users.models import FFAdminUser
from webhooks.webhooks import WebhookEventType

Expand Down Expand Up @@ -190,13 +191,17 @@ def _create_feature_state(
)

segment_id = feature_state["feature_segment"]["segment"]
if version.feature_states.filter(
feature_segment__segment_id=segment_id
).exists():
if (
existing_segment_override := version.feature_states.filter(
feature_segment__segment_id=segment_id
)
.select_related("feature_segment__segment")
.first()
):
raise serializers.ValidationError(
{
"message": "Segment override already exists for Segment %d"
% segment_id
"message": "Segment override already exists for Segment '%s'"
% existing_segment_override.feature_segment.segment.name
}
)

Expand All @@ -222,10 +227,13 @@ def _update_feature_state(
feature_segment__segment_id=segment_id
)
except ObjectDoesNotExist:
# Note that the segment will always exist because, if it didn't,
# it would have been picked up in the serializer validation.
segment = Segment.objects.get(id=segment_id)
raise serializers.ValidationError(
{
"message": "Segment override does not exist for Segment %d."
% segment_id
"message": "Segment override does not exist for Segment '%s'."
% segment.name
}
)
# Patch the id of the feature segment onto the feature state data so that
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ def test_publish_version_change_set_raises_error_when_segment_override_does_not_

# Then
assert e.value.detail == {
"message": f"Segment override does not exist for Segment {segment.id}."
"message": f"Segment override does not exist for Segment '{segment.name}'."
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1022,7 +1022,7 @@ def test_create_segment_override_for_existing_override_when_creating_new_version
# Then
assert response.status_code == status.HTTP_400_BAD_REQUEST
assert response.json() == {
"message": "Segment override already exists for Segment %d" % segment.id
"message": "Segment override already exists for Segment '%s'" % segment.name
}


Expand Down

0 comments on commit c74be59

Please sign in to comment.