diff --git a/src/sentry/api/serializers/rest_framework/origin.py b/src/sentry/api/serializers/rest_framework/origin.py index 3e2899ff4c6c..ae319e90b1f4 100644 --- a/src/sentry/api/serializers/rest_framework/origin.py +++ b/src/sentry/api/serializers/rest_framework/origin.py @@ -9,8 +9,6 @@ class OriginField(serializers.CharField): def to_internal_value(self, data): rv = super().to_internal_value(data) - if not rv: - return self.validate_origin(rv) return rv diff --git a/tests/sentry/api/serializers/rest_framework/test_origin.py b/tests/sentry/api/serializers/rest_framework/test_origin.py index 4c71031efed9..913b3ca72a8d 100644 --- a/tests/sentry/api/serializers/rest_framework/test_origin.py +++ b/tests/sentry/api/serializers/rest_framework/test_origin.py @@ -8,6 +8,10 @@ class DummySerializer(serializers.Serializer): origin_field = OriginField() +class BlankOriginSerializer(serializers.Serializer): + origin_field = OriginField(allow_blank=True) + + class OriginFieldTest(TestCase): def test_valid_origin(self) -> None: urls = ["https://www.foo.com", "*", "*.domain.com", "*:80", "localhost:8080"] @@ -20,3 +24,9 @@ def test_invalid_origin(self) -> None: for url in urls: serializer = DummySerializer(data={"origin_field": url}) assert serializer.is_valid() is False + + def test_blank_origin_is_preserved(self) -> None: + serializer = BlankOriginSerializer(data={"origin_field": ""}) + + assert serializer.is_valid() + assert serializer.validated_data["origin_field"] == ""