From 346f00f55e97e60a66a7298818bf4e6dbf3161c7 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Wed, 11 Dec 2019 03:40:29 -0800 Subject: [PATCH] Add failing tests for unique_together+source --- tests/test_validators.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/test_validators.py b/tests/test_validators.py index 5c4a62b31..3763d95d7 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -301,6 +301,40 @@ class TestUniquenessTogetherValidation(TestCase): ] } + def test_read_only_fields_with_default_and_source(self): + class ReadOnlySerializer(serializers.ModelSerializer): + name = serializers.CharField(source='race_name', default='test', read_only=True) + + class Meta: + model = UniquenessTogetherModel + fields = ['name', 'position'] + validators = [ + UniqueTogetherValidator( + queryset=UniquenessTogetherModel.objects.all(), + fields=['name', 'position'] + ) + ] + + serializer = ReadOnlySerializer(data={'position': 1}) + assert serializer.is_valid(raise_exception=True) + + def test_writeable_fields_with_source(self): + class WriteableSerializer(serializers.ModelSerializer): + name = serializers.CharField(source='race_name') + + class Meta: + model = UniquenessTogetherModel + fields = ['name', 'position'] + validators = [ + UniqueTogetherValidator( + queryset=UniquenessTogetherModel.objects.all(), + fields=['name', 'position'] + ) + ] + + serializer = WriteableSerializer(data={'name': 'test', 'position': 1}) + assert serializer.is_valid(raise_exception=True) + def test_allow_explict_override(self): """ Ensure validators can be explicitly removed..