diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index e27610178..f380435eb 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -220,6 +220,7 @@ class BaseSerializer(Field): return self.instance def is_valid(self, raise_exception=False): + assert self._initial_data is not None assert not hasattr(self, 'restore_object'), ( 'Serializer `%s.%s` has old-style version 2 `.restore_object()` ' 'that is no longer compatible with REST framework 3. ' diff --git a/tests/test_serializer.py b/tests/test_serializer.py index f76cec9c3..25df987d4 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -95,6 +95,11 @@ class TestSerializer: serializer = self.Serializer() assert serializer.data == {'char': '', 'integer': None} + def test_empty_serializer_validity(self): + serializer = self.Serializer() + with pytest.raises(AssertionError): + serializer.is_valid() + def test_missing_attribute_during_serialization(self): class MissingAttributes: pass