Skip to content

Commit 33b4977

Browse files
committed
Add another failing test
1 parent c3a8ad9 commit 33b4977

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

tests/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,12 @@ class EmailPKModel(RESTFrameworkModel):
168168
@property
169169
def is_valid(self):
170170
return self.name == 'valid'
171+
172+
173+
class PersonUUID(RESTFrameworkModel):
174+
id = models.UUIDField(primary_key=True)
175+
name = models.CharField(max_length=100)
176+
177+
@property
178+
def is_valid(self):
179+
return self.name == 'valid'

tests/test_serializer_lists.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from rest_framework.exceptions import ErrorDetail
77
from tests.models import (
88
CustomManagerModel, EmailPKModel, ListModelForTest, NullableOneToOneSource,
9-
OneToOneTarget
9+
OneToOneTarget, PersonUUID
1010
)
1111

1212

@@ -840,3 +840,29 @@ def test_email_pk_instance_validation(self):
840840
input_data = [{"email": "test@test.com", "name": "bar"}]
841841
serializer = self.email_serializer(instance=EmailPKModel.objects.all(), data=input_data, many=True)
842842
assert serializer.is_valid(), serializer.errors
843+
844+
def test_uuid_validate_many(self):
845+
PersonUUID.objects.create(id="c20f2f31-65a3-451f-ae7d-e939b7d9f84b", name="valid")
846+
PersonUUID.objects.create(id="3308237e-18d8-4074-9d05-79cc0fdb5bb3", name="other")
847+
848+
class PersonUUIDSerializer(serializers.ModelSerializer):
849+
uuid = serializers.UUIDField(source="id")
850+
851+
class Meta:
852+
model = PersonUUID
853+
fields = ("uuid", "name")
854+
read_only_fields = ('uuid',)
855+
856+
def validate_name(self, value):
857+
if value and not self.instance.is_valid:
858+
return False
859+
return value
860+
861+
input_data = [
862+
{
863+
"uuid": "t3308237e-18d8-4074-9d05-79cc0fdb5bb3",
864+
"name": "bar",
865+
},
866+
]
867+
serializer = PersonUUIDSerializer(instance=list(PersonUUID.objects.all()), data=input_data, many=True)
868+
assert serializer.is_valid(), serializer.errors

0 commit comments

Comments
 (0)