2015-07-08 15:19:42 +03:00
|
|
|
from django.http import QueryDict
|
|
|
|
|
2014-10-30 18:59:16 +03:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
|
|
|
|
class TestNestedSerializer:
|
|
|
|
def setup(self):
|
|
|
|
class NestedSerializer(serializers.Serializer):
|
|
|
|
one = serializers.IntegerField(max_value=10)
|
|
|
|
two = serializers.IntegerField(max_value=10)
|
|
|
|
|
|
|
|
class TestSerializer(serializers.Serializer):
|
|
|
|
nested = NestedSerializer()
|
|
|
|
|
|
|
|
self.Serializer = TestSerializer
|
|
|
|
|
|
|
|
def test_nested_validate(self):
|
|
|
|
input_data = {
|
|
|
|
'nested': {
|
|
|
|
'one': '1',
|
|
|
|
'two': '2',
|
|
|
|
}
|
|
|
|
}
|
|
|
|
expected_data = {
|
|
|
|
'nested': {
|
|
|
|
'one': 1,
|
|
|
|
'two': 2,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
serializer = self.Serializer(data=input_data)
|
|
|
|
assert serializer.is_valid()
|
|
|
|
assert serializer.validated_data == expected_data
|
|
|
|
|
|
|
|
def test_nested_serialize_empty(self):
|
|
|
|
expected_data = {
|
|
|
|
'nested': {
|
|
|
|
'one': None,
|
|
|
|
'two': None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
serializer = self.Serializer()
|
|
|
|
assert serializer.data == expected_data
|
2015-07-03 19:28:48 +03:00
|
|
|
|
|
|
|
|
|
|
|
class TestNotRequiredNestedSerializer:
|
|
|
|
def setup(self):
|
|
|
|
class NestedSerializer(serializers.Serializer):
|
|
|
|
one = serializers.IntegerField(max_value=10)
|
|
|
|
|
|
|
|
class TestSerializer(serializers.Serializer):
|
|
|
|
nested = NestedSerializer(required=False)
|
|
|
|
|
|
|
|
self.Serializer = TestSerializer
|
|
|
|
|
|
|
|
def test_json_validate(self):
|
|
|
|
input_data = {}
|
|
|
|
serializer = self.Serializer(data=input_data)
|
|
|
|
assert serializer.is_valid()
|
|
|
|
|
|
|
|
input_data = {'nested': {'one': '1'}}
|
|
|
|
serializer = self.Serializer(data=input_data)
|
|
|
|
assert serializer.is_valid()
|
|
|
|
|
|
|
|
def test_multipart_validate(self):
|
2015-07-08 15:25:12 +03:00
|
|
|
input_data = QueryDict('')
|
2015-07-03 19:28:48 +03:00
|
|
|
serializer = self.Serializer(data=input_data)
|
|
|
|
assert serializer.is_valid()
|
|
|
|
|
2015-07-08 15:19:42 +03:00
|
|
|
input_data = QueryDict('nested[one]=1')
|
2015-07-03 19:28:48 +03:00
|
|
|
serializer = self.Serializer(data=input_data)
|
|
|
|
assert serializer.is_valid()
|