mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-09-16 09:12:29 +03:00
Add another failing test
This commit is contained in:
parent
c3a8ad9580
commit
33b49779a1
|
@ -168,3 +168,12 @@ class EmailPKModel(RESTFrameworkModel):
|
||||||
@property
|
@property
|
||||||
def is_valid(self):
|
def is_valid(self):
|
||||||
return self.name == 'valid'
|
return self.name == 'valid'
|
||||||
|
|
||||||
|
|
||||||
|
class PersonUUID(RESTFrameworkModel):
|
||||||
|
id = models.UUIDField(primary_key=True)
|
||||||
|
name = models.CharField(max_length=100)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_valid(self):
|
||||||
|
return self.name == 'valid'
|
||||||
|
|
|
@ -6,7 +6,7 @@ from rest_framework import serializers
|
||||||
from rest_framework.exceptions import ErrorDetail
|
from rest_framework.exceptions import ErrorDetail
|
||||||
from tests.models import (
|
from tests.models import (
|
||||||
CustomManagerModel, EmailPKModel, ListModelForTest, NullableOneToOneSource,
|
CustomManagerModel, EmailPKModel, ListModelForTest, NullableOneToOneSource,
|
||||||
OneToOneTarget
|
OneToOneTarget, PersonUUID
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -840,3 +840,29 @@ class TestManyTrueValidationCheck:
|
||||||
input_data = [{"email": "test@test.com", "name": "bar"}]
|
input_data = [{"email": "test@test.com", "name": "bar"}]
|
||||||
serializer = self.email_serializer(instance=EmailPKModel.objects.all(), data=input_data, many=True)
|
serializer = self.email_serializer(instance=EmailPKModel.objects.all(), data=input_data, many=True)
|
||||||
assert serializer.is_valid(), serializer.errors
|
assert serializer.is_valid(), serializer.errors
|
||||||
|
|
||||||
|
def test_uuid_validate_many(self):
|
||||||
|
PersonUUID.objects.create(id="c20f2f31-65a3-451f-ae7d-e939b7d9f84b", name="valid")
|
||||||
|
PersonUUID.objects.create(id="3308237e-18d8-4074-9d05-79cc0fdb5bb3", name="other")
|
||||||
|
|
||||||
|
class PersonUUIDSerializer(serializers.ModelSerializer):
|
||||||
|
uuid = serializers.UUIDField(source="id")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = PersonUUID
|
||||||
|
fields = ("uuid", "name")
|
||||||
|
read_only_fields = ('uuid',)
|
||||||
|
|
||||||
|
def validate_name(self, value):
|
||||||
|
if value and not self.instance.is_valid:
|
||||||
|
return False
|
||||||
|
return value
|
||||||
|
|
||||||
|
input_data = [
|
||||||
|
{
|
||||||
|
"uuid": "t3308237e-18d8-4074-9d05-79cc0fdb5bb3",
|
||||||
|
"name": "bar",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
serializer = PersonUUIDSerializer(instance=list(PersonUUID.objects.all()), data=input_data, many=True)
|
||||||
|
assert serializer.is_valid(), serializer.errors
|
||||||
|
|
Loading…
Reference in New Issue
Block a user