Added serializers. back to serializer classes

This commit is contained in:
Adam Nelson 2016-10-21 14:09:30 -04:00
parent 556cf1205d
commit edfcdba913
11 changed files with 107 additions and 110 deletions

View File

@ -12,7 +12,7 @@ from django.core.exceptions import PermissionDenied
from django.http import Http404
from django.utils.encoding import force_text
from rest_framework import exceptions
from rest_framework import exceptions, serializers
from rest_framework.fields import (
BooleanField, CharField, ChoiceField, DateField, DateTimeField,
DecimalField, DictField, EmailField, Field, FileField, FloatField,
@ -21,7 +21,6 @@ from rest_framework.fields import (
)
from rest_framework.relations import ManyRelatedField, RelatedField
from rest_framework.request import clone_request
from rest_framework.serializers import Serializer
from rest_framework.utils.field_mapping import ClassLookupDict
@ -62,7 +61,7 @@ class SimpleMetadata(BaseMetadata):
ImageField: 'image upload',
ListField: 'list',
DictField: 'nested object',
Serializer: 'nested object',
serializers.Serializer: 'nested object',
})
def determine_metadata(self, request, view):

View File

@ -17,7 +17,7 @@ from django.http.multipartparser import parse_header
from django.template import Template, loader
from django.test.client import encode_multipart
from rest_framework import VERSION, exceptions, status
from rest_framework import VERSION, exceptions, serializers, status
from rest_framework.compat import (
INDENT_SEPARATORS, LONG_SEPARATORS, SHORT_SEPARATORS, coreapi,
template_render
@ -32,7 +32,6 @@ from rest_framework.relations import (
ImproperlyConfigured, ManyRelatedField, RelatedField
)
from rest_framework.request import is_form_media_type, override_method
from rest_framework.serializers import ListSerializer, Serializer
from rest_framework.settings import api_settings
from rest_framework.utils import encoders
from rest_framework.utils.breadcrumbs import get_breadcrumbs
@ -322,10 +321,10 @@ class HTMLFormRenderer(BaseRenderer):
'base_template': 'select_multiple.html',
# Also valid: 'checkbox_multiple.html'
},
Serializer: {
serializers.Serializer: {
'base_template': 'fieldset.html'
},
ListSerializer: {
serializers.ListSerializer: {
'base_template': 'list_fieldset.html'
},
FilePathField: {

View File

@ -10,7 +10,7 @@ from django.template.response import SimpleTemplateResponse
from django.utils import six
from django.utils.six.moves.http_client import responses
from rest_framework.serializers import Serializer
from rest_framework import serializers
class Response(SimpleTemplateResponse):
@ -31,7 +31,7 @@ class Response(SimpleTemplateResponse):
"""
super(Response, self).__init__(None, status=status)
if isinstance(data, Serializer):
if isinstance(data, serializers.Serializer):
msg = (
'You passed a Serializer instance as data, but '
'probably meant to pass serialized `.data` or '
@ -98,8 +98,8 @@ class Response(SimpleTemplateResponse):
"""
state = super(Response, self).__getstate__()
for key in (
'accepted_renderer', 'renderer_context', 'resolver_match',
'client', 'request', 'json', 'wsgi_request'
'accepted_renderer', 'renderer_context', 'resolver_match',
'client', 'request', 'json', 'wsgi_request'
):
if key in state:
del state[key]

View File

@ -7,7 +7,7 @@ from django.conf import settings
from django.contrib.admindocs.views import simplify_regex
from django.utils.encoding import force_text, smart_text
from rest_framework import exceptions, renderers
from rest_framework import exceptions, renderers, serializers
from rest_framework.compat import (
RegexURLPattern, RegexURLResolver, coreapi, uritemplate, urlparse
)
@ -18,7 +18,6 @@ from rest_framework.fields import (
from rest_framework.relations import ManyRelatedField
from rest_framework.request import clone_request
from rest_framework.response import Response
from rest_framework.serializers import ListSerializer, Serializer
from rest_framework.settings import api_settings
from rest_framework.utils import formatting
from rest_framework.utils.field_mapping import ClassLookupDict
@ -36,8 +35,8 @@ types_lookup = ClassLookupDict({
FileField: 'file',
MultipleChoiceField: 'array',
ManyRelatedField: 'array',
Serializer: 'object',
ListSerializer: 'array'
serializers.Serializer: 'object',
serializers.ListSerializer: 'array'
})
@ -463,7 +462,7 @@ class SchemaGenerator(object):
serializer = view.get_serializer()
if isinstance(serializer, ListSerializer):
if isinstance(serializer, serializers.ListSerializer):
return [
coreapi.Field(
name='data',
@ -473,7 +472,7 @@ class SchemaGenerator(object):
)
]
if not isinstance(serializer, Serializer):
if not isinstance(serializer, serializers.Serializer):
return []
fields = []

View File

@ -11,6 +11,7 @@ from django.test import TestCase, override_settings
from django.utils import timezone
import rest_framework
from rest_framework import serializers
from rest_framework.fields import (
BooleanField, CharField, ChoiceField, DateField, DateTimeField,
DecimalField, DictField, DurationField, EmailField, Field, FileField,
@ -20,7 +21,6 @@ from rest_framework.fields import (
SkipField, SlugField, TimeField, URLField, UUIDField, ValidationError,
is_simple_callable, six
)
from rest_framework.serializers import CreateOnlyDefault, Serializer
try:
import typings
@ -152,7 +152,7 @@ class TestEmpty:
class TestSource:
def test_source(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = CharField(source='other')
serializer = ExampleSerializer(data={'example_field': 'abc'})
@ -160,7 +160,7 @@ class TestSource:
assert serializer.validated_data == {'other': 'abc'}
def test_redundant_source(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = CharField(source='example_field')
with pytest.raises(AssertionError) as exc_info:
@ -172,7 +172,7 @@ class TestSource:
)
def test_callable_source(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = CharField(source='example_callable')
class ExampleInstance(object):
@ -183,7 +183,7 @@ class TestSource:
assert serializer.data['example_field'] == 'example callable value'
def test_callable_source_raises(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = CharField(source='example_callable',
read_only=True)
@ -200,7 +200,7 @@ class TestSource:
class TestReadOnly:
def setup(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
read_only = ReadOnlyField()
writable = IntegerField()
@ -226,7 +226,7 @@ class TestReadOnly:
class TestWriteOnly:
def setup(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
write_only = IntegerField(write_only=True)
readable = IntegerField()
@ -253,7 +253,7 @@ class TestWriteOnly:
class TestInitial:
def setup(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
initial_field = IntegerField(initial=123)
blank_field = IntegerField()
@ -274,7 +274,7 @@ class TestInitialWithCallable:
def initial_value():
return 123
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
initial_field = IntegerField(initial=initial_value)
self.serializer = TestSerializer()
@ -290,7 +290,7 @@ class TestInitialWithCallable:
class TestLabel:
def setup(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
labeled = IntegerField(label='My label')
self.serializer = TestSerializer()
@ -332,7 +332,7 @@ class TestBooleanHTMLInput:
as `False` by BooleanField.
"""
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
archived = BooleanField()
serializer = TestSerializer(data=QueryDict(''))
@ -345,7 +345,7 @@ class TestBooleanHTMLInput:
as `False` by BooleanField, even if the field is required=False.
"""
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
archived = BooleanField(required=False)
serializer = TestSerializer(data=QueryDict(''))
@ -355,7 +355,7 @@ class TestBooleanHTMLInput:
class TestHTMLInput:
def test_empty_html_charfield_with_default(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(default='happy')
serializer = TestSerializer(data=QueryDict(''))
@ -363,7 +363,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': 'happy'}
def test_empty_html_charfield_without_default(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(allow_blank=True)
serializer = TestSerializer(data=QueryDict('message='))
@ -371,7 +371,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': ''}
def test_empty_html_charfield_without_default_not_required(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(allow_blank=True, required=False)
serializer = TestSerializer(data=QueryDict('message='))
@ -379,7 +379,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': ''}
def test_empty_html_integerfield(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = IntegerField(default=123)
serializer = TestSerializer(data=QueryDict('message='))
@ -387,7 +387,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': 123}
def test_empty_html_uuidfield_with_default(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = UUIDField(default=uuid.uuid4)
serializer = TestSerializer(data=QueryDict('message='))
@ -395,7 +395,7 @@ class TestHTMLInput:
assert list(serializer.validated_data.keys()) == ['message']
def test_empty_html_uuidfield_with_optional(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = UUIDField(required=False)
serializer = TestSerializer(data=QueryDict('message='))
@ -403,7 +403,7 @@ class TestHTMLInput:
assert list(serializer.validated_data.keys()) == []
def test_empty_html_charfield_allow_null(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(allow_null=True)
serializer = TestSerializer(data=QueryDict('message='))
@ -411,7 +411,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': None}
def test_empty_html_datefield_allow_null(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
expiry = DateField(allow_null=True)
serializer = TestSerializer(data=QueryDict('expiry='))
@ -419,7 +419,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'expiry': None}
def test_empty_html_charfield_allow_null_allow_blank(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(allow_null=True, allow_blank=True)
serializer = TestSerializer(data=QueryDict('message='))
@ -427,7 +427,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'message': ''}
def test_empty_html_charfield_required_false(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
message = CharField(required=False)
serializer = TestSerializer(data=QueryDict(''))
@ -435,7 +435,7 @@ class TestHTMLInput:
assert serializer.validated_data == {}
def test_querydict_list_input(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
scores = ListField(child=IntegerField())
serializer = TestSerializer(data=QueryDict('scores=1&scores=3'))
@ -443,7 +443,7 @@ class TestHTMLInput:
assert serializer.validated_data == {'scores': [1, 3]}
def test_querydict_list_input_only_one_input(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
scores = ListField(child=IntegerField())
serializer = TestSerializer(data=QueryDict('scores=1&'))
@ -453,9 +453,9 @@ class TestHTMLInput:
class TestCreateOnlyDefault:
def setup(self):
default = CreateOnlyDefault('2001-01-01')
default = serializers.CreateOnlyDefault('2001-01-01')
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
published = HiddenField(default=default)
text = CharField()
@ -491,9 +491,9 @@ class TestCreateOnlyDefault:
def __call__(self):
return "success" if hasattr(self, 'field') else "failure"
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
context_set = CharField(
default=CreateOnlyDefault(TestCallableDefault()))
default=serializers.CreateOnlyDefault(TestCallableDefault()))
serializer = TestSerializer(data={})
assert serializer.is_valid()
@ -1855,7 +1855,7 @@ class TestJSONField(FieldValues):
HTML inputs should be treated as a serialized JSON string.
"""
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
config = JSONField()
data = QueryDict(mutable=True)
@ -1907,7 +1907,7 @@ class TestFileFieldContext:
class TestSerializerMethodField:
def test_serializer_method_field(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = SerializerMethodField()
def get_example_field(self, obj):
@ -1919,7 +1919,7 @@ class TestSerializerMethodField:
}
def test_redundant_method_name(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example_field = SerializerMethodField('get_example_field')
with pytest.raises(AssertionError) as exc_info:

View File

@ -4,14 +4,15 @@ from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from django.test import TestCase
from rest_framework import exceptions, metadata, status, versioning, views
from rest_framework import (
exceptions, metadata, serializers, status, versioning, views
)
from rest_framework.fields import (
CharField, ChoiceField, IntegerField, ListField, NullBooleanField
)
from rest_framework.relations import PrimaryKeyRelatedField, RelatedField
from rest_framework.renderers import BrowsableAPIRenderer
from rest_framework.request import Request
from rest_framework.serializers import ModelSerializer, Serializer
from rest_framework.test import APIRequestFactory
from .models import BasicModel
@ -67,11 +68,11 @@ class TestMetadata:
on the fields that may be supplied to PUT and POST requests.
"""
class NestedField(Serializer):
class NestedField(serializers.Serializer):
a = IntegerField()
b = IntegerField()
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
choice_field = ChoiceField(['red', 'green', 'blue'])
integer_field = IntegerField(
min_value=1, max_value=1000
@ -187,7 +188,7 @@ class TestMetadata:
metadata associated with it should not be included in OPTION responses.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
choice_field = ChoiceField(['red', 'green', 'blue'])
integer_field = IntegerField(max_value=10)
char_field = CharField(required=False)
@ -219,7 +220,7 @@ class TestMetadata:
metadata associated with it should not be included in OPTION responses.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
choice_field = ChoiceField(['red', 'green', 'blue'])
integer_field = IntegerField(max_value=10)
char_field = CharField(required=False)
@ -254,7 +255,7 @@ class TestMetadata:
def get_serializer(self):
assert hasattr(self.request, 'version')
return Serializer()
return serializers.Serializer()
view = ExampleView.as_view()
view(request=request)
@ -268,7 +269,7 @@ class TestMetadata:
def get_serializer(self):
assert hasattr(self.request, 'versioning_scheme')
return Serializer()
return serializers.Serializer()
scheme = versioning.QueryParameterVersioning
view = ExampleView.as_view(versioning_class=scheme)
@ -308,7 +309,7 @@ class TestModelSerializerMetadata(TestCase):
class Child(models.Model):
name = models.CharField(max_length=100)
class ExampleSerializer(ModelSerializer):
class ExampleSerializer(serializers.ModelSerializer):
children = PrimaryKeyRelatedField(read_only=True, many=True)
class Meta:

View File

@ -8,8 +8,8 @@ from django.db import models
from django.test import TestCase
from django.utils.encoding import python_2_unicode_compatible
from rest_framework import serializers
from rest_framework.relations import StringRelatedField
from rest_framework.serializers import ModelSerializer
@python_2_unicode_compatible
@ -65,7 +65,7 @@ class TestGenericRelations(TestCase):
IE. A reverse generic relationship.
"""
class BookmarkSerializer(ModelSerializer):
class BookmarkSerializer(serializers.ModelSerializer):
tags = StringRelatedField(many=True)
class Meta:
@ -85,7 +85,7 @@ class TestGenericRelations(TestCase):
IE. A forward generic relationship.
"""
class TagSerializer(ModelSerializer):
class TagSerializer(serializers.ModelSerializer):
tagged_item = StringRelatedField()
class Meta:

View File

@ -13,7 +13,7 @@ from django.utils import six
from django.utils.safestring import SafeText
from django.utils.translation import ugettext_lazy as _
from rest_framework import permissions, status
from rest_framework import permissions, serializers, status
from rest_framework.fields import (
CharField, ChoiceField, HiddenField, MultipleChoiceField, OrderedDict
)
@ -21,7 +21,6 @@ from rest_framework.renderers import (
BaseRenderer, BrowsableAPIRenderer, HTMLFormRenderer, JSONRenderer
)
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from rest_framework.settings import api_settings
from rest_framework.test import APIRequestFactory
from rest_framework.views import APIView
@ -483,7 +482,7 @@ class TestJSONIndentationStyles:
class TestHiddenFieldHTMLFormRenderer(TestCase):
def test_hidden_field_rendering(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
published = HiddenField(default=True)
serializer = TestSerializer(data={})
@ -496,7 +495,7 @@ class TestHiddenFieldHTMLFormRenderer(TestCase):
class TestHTMLFormRenderer(TestCase):
def setUp(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
test_field = CharField()
self.renderer = HTMLFormRenderer()
@ -527,7 +526,7 @@ class TestChoiceFieldHTMLFormRenderer(TestCase):
def setUp(self):
choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12'))
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
test_field = ChoiceField(choices=choices,
initial=2)
@ -571,7 +570,7 @@ class TestMultipleChoiceFieldHTMLFormRenderer(TestCase):
choices = (('1', 'Option1'), ('2', 'Option2'), ('12', 'Option12'),
('}', 'OptionBrace'))
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
test_field = MultipleChoiceField(choices=choices)
serializer = TestSerializer(data={'test_field': ['12']})
@ -590,7 +589,7 @@ class TestMultipleChoiceFieldHTMLFormRenderer(TestCase):
def test_render_selected_option_with_integer_option_ids(self):
choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12'))
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
test_field = MultipleChoiceField(choices=choices)
serializer = TestSerializer(data={'test_field': ['12']})

View File

@ -6,11 +6,11 @@ import re
import pytest
from rest_framework import serializers
from rest_framework.compat import unicode_repr
from rest_framework.fields import (
CharField, IntegerField, RegexField, ValidationError
)
from rest_framework.serializers import BaseSerializer, Serializer
from .utils import MockObject
@ -20,7 +20,7 @@ from .utils import MockObject
class TestSerializer:
def setup(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
char = CharField()
integer = IntegerField()
@ -77,7 +77,7 @@ class TestSerializer:
class TestValidateMethod:
def test_non_field_error_validate_method(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
char = CharField()
integer = IntegerField()
@ -89,7 +89,7 @@ class TestValidateMethod:
assert serializer.errors == {'non_field_errors': ['Non field error']}
def test_field_error_validate_method(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
char = CharField()
integer = IntegerField()
@ -103,7 +103,7 @@ class TestValidateMethod:
class TestBaseSerializer:
def setup(self):
class ExampleSerializer(BaseSerializer):
class ExampleSerializer(serializers.BaseSerializer):
def to_representation(self, obj):
return {
'id': obj['id'],
@ -173,15 +173,15 @@ class TestStarredSource:
}
def setup(self):
class NestedSerializer1(Serializer):
class NestedSerializer1(serializers.Serializer):
a = IntegerField()
b = IntegerField()
class NestedSerializer2(Serializer):
class NestedSerializer2(serializers.Serializer):
c = IntegerField()
d = IntegerField()
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
nested1 = NestedSerializer1(source='*')
nested2 = NestedSerializer2(source='*')
@ -211,7 +211,7 @@ class TestStarredSource:
class TestIncorrectlyConfigured:
def test_incorrect_field_name(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
incorrect_name = IntegerField()
class ExampleObject:
@ -232,7 +232,7 @@ class TestIncorrectlyConfigured:
class TestUnicodeRepr:
def test_unicode_repr(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
example = CharField()
class ExampleObject:
@ -253,7 +253,7 @@ class TestNotRequiredOutput:
'required=False' should allow a dictionary key to be missing in output.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
omitted = CharField(required=False)
included = CharField()
@ -266,7 +266,7 @@ class TestNotRequiredOutput:
'required=False' should allow an object attribute to be missing in output.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
omitted = CharField(required=False)
included = CharField()
@ -286,7 +286,7 @@ class TestNotRequiredOutput:
'required=False', but it should still have a value.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
omitted = CharField(default='abc')
included = CharField()
@ -302,7 +302,7 @@ class TestNotRequiredOutput:
'required=False', but it should still have a value.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
omitted = CharField(default='abc')
included = CharField()
@ -319,7 +319,7 @@ class TestCacheSerializerData:
but does preserve the data itself.
"""
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
field1 = CharField()
field2 = CharField()
@ -331,7 +331,7 @@ class TestCacheSerializerData:
class TestDefaultInclusions:
def setup(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
char = CharField(read_only=True, default='abc')
integer = IntegerField()
@ -361,7 +361,7 @@ class TestDefaultInclusions:
class TestSerializerValidationWithCompiledRegexField:
def setup(self):
class ExampleSerializer(Serializer):
class ExampleSerializer(serializers.Serializer):
name = RegexField(re.compile(r'\d'), required=True)
self.Serializer = ExampleSerializer

View File

@ -1,10 +1,10 @@
from django.utils.datastructures import MultiValueDict
from rest_framework import serializers
from rest_framework.fields import (
BooleanField, IntegerField, ListField, MultipleChoiceField,
ValidationError
)
from rest_framework.serializers import ListSerializer, Serializer
class BasicObject:
@ -33,7 +33,7 @@ class TestListSerializer:
"""
def setup(self):
class IntegerListSerializer(ListSerializer):
class IntegerListSerializer(serializers.ListSerializer):
child = IntegerField()
self.Serializer = IntegerListSerializer
@ -65,14 +65,14 @@ class TestListSerializerContainingNestedSerializer:
"""
def setup(self):
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
integer = IntegerField()
boolean = BooleanField()
def create(self, validated_data):
return BasicObject(**validated_data)
class ObjectListSerializer(ListSerializer):
class ObjectListSerializer(serializers.ListSerializer):
child = TestSerializer()
self.Serializer = ObjectListSerializer
@ -151,9 +151,9 @@ class TestNestedListSerializer:
"""
def setup(self):
class TestSerializer(Serializer):
integers = ListSerializer(child=IntegerField())
booleans = ListSerializer(child=BooleanField())
class TestSerializer(serializers.Serializer):
integers = serializers.ListSerializer(child=IntegerField())
booleans = serializers.ListSerializer(child=BooleanField())
def create(self, validated_data):
return BasicObject(**validated_data)
@ -230,14 +230,14 @@ class TestNestedListSerializer:
class TestNestedListOfListsSerializer:
def setup(self):
class TestSerializer(Serializer):
integers = ListSerializer(
child=ListSerializer(
class TestSerializer(serializers.Serializer):
integers = serializers.ListSerializer(
child=serializers.ListSerializer(
child=IntegerField()
)
)
booleans = ListSerializer(
child=ListSerializer(
booleans = serializers.ListSerializer(
child=serializers.ListSerializer(
child=BooleanField()
)
)
@ -285,11 +285,11 @@ class TestListSerializerClass:
"""Tests for a custom list_serializer_class."""
def test_list_serializer_class_validate(self):
class CustomListSerializer(ListSerializer):
class CustomListSerializer(serializers.ListSerializer):
def validate(self, attrs):
raise ValidationError('Non field error')
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
class Meta:
list_serializer_class = CustomListSerializer
@ -308,7 +308,7 @@ class TestSerializerPartialUsage:
"""
def test_partial_listfield(self):
class ListSerializer(Serializer):
class ListSerializer(serializers.Serializer):
listdata = ListField()
serializer = ListSerializer(data=MultiValueDict(), partial=True)
@ -319,7 +319,7 @@ class TestSerializerPartialUsage:
assert serializer.errors == {}
def test_partial_multiplechoice(self):
class MultipleChoiceSerializer(Serializer):
class MultipleChoiceSerializer(serializers.Serializer):
multiplechoice = MultipleChoiceField(choices=[1, 2, 3])
serializer = MultipleChoiceSerializer(data=MultiValueDict(),

View File

@ -1,16 +1,16 @@
from django.http import QueryDict
from rest_framework import serializers
from rest_framework.fields import IntegerField, MultipleChoiceField
from rest_framework.serializers import ListSerializer, Serializer
class TestNestedSerializer:
def setup(self):
class NestedSerializer(Serializer):
class NestedSerializer(serializers.Serializer):
one = IntegerField(max_value=10)
two = IntegerField(max_value=10)
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
nested = NestedSerializer()
self.Serializer = TestSerializer
@ -51,10 +51,10 @@ class TestNestedSerializer:
class TestNotRequiredNestedSerializer:
def setup(self):
class NestedSerializer(Serializer):
class NestedSerializer(serializers.Serializer):
one = IntegerField(max_value=10)
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
nested = NestedSerializer(required=False)
self.Serializer = TestSerializer
@ -80,10 +80,10 @@ class TestNotRequiredNestedSerializer:
class TestNestedSerializerWithMany:
def setup(self):
class NestedSerializer(Serializer):
class NestedSerializer(serializers.Serializer):
example = IntegerField(max_value=10)
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
allow_null = NestedSerializer(many=True, allow_null=True)
not_allow_null = NestedSerializer(many=True)
allow_empty = NestedSerializer(many=True, allow_empty=True)
@ -174,16 +174,16 @@ class TestNestedSerializerWithMany:
assert not serializer.is_valid()
expected_errors = {'not_allow_empty': {'non_field_errors': [
ListSerializer.default_error_messages['empty']]}}
serializers.ListSerializer.default_error_messages['empty']]}}
assert serializer.errors == expected_errors
class TestNestedSerializerWithList:
def setup(self):
class NestedSerializer(Serializer):
class NestedSerializer(serializers.Serializer):
example = MultipleChoiceField(choices=[1, 2, 3])
class TestSerializer(Serializer):
class TestSerializer(serializers.Serializer):
nested = NestedSerializer()
self.Serializer = TestSerializer