mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-07 17:33:43 +03:00
Merge pull request #861 from minddust/fix_missing_field_values
Remove default values - django sets them for us - cause of #710
This commit is contained in:
commit
3f47eb7a77
|
@ -383,7 +383,6 @@ class URLField(CharField):
|
||||||
type_name = 'URLField'
|
type_name = 'URLField'
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
kwargs['max_length'] = kwargs.get('max_length', 200)
|
|
||||||
kwargs['validators'] = [validators.URLValidator()]
|
kwargs['validators'] = [validators.URLValidator()]
|
||||||
super(URLField, self).__init__(**kwargs)
|
super(URLField, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
@ -392,7 +391,6 @@ class SlugField(CharField):
|
||||||
type_name = 'SlugField'
|
type_name = 'SlugField'
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs['max_length'] = kwargs.get('max_length', 50)
|
|
||||||
super(SlugField, self).__init__(*args, **kwargs)
|
super(SlugField, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ from django.test import TestCase
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.serializers import Serializer
|
from rest_framework.serializers import Serializer
|
||||||
|
from rest_framework.tests.models import RESTFrameworkModel
|
||||||
|
|
||||||
|
|
||||||
class TimestampedModel(models.Model):
|
class TimestampedModel(models.Model):
|
||||||
|
@ -685,3 +686,126 @@ class ChoiceFieldTests(TestCase):
|
||||||
"""
|
"""
|
||||||
f = serializers.ChoiceField(required=False, choices=self.SAMPLE_CHOICES)
|
f = serializers.ChoiceField(required=False, choices=self.SAMPLE_CHOICES)
|
||||||
self.assertEqual(f.choices, models.fields.BLANK_CHOICE_DASH + self.SAMPLE_CHOICES)
|
self.assertEqual(f.choices, models.fields.BLANK_CHOICE_DASH + self.SAMPLE_CHOICES)
|
||||||
|
|
||||||
|
|
||||||
|
class EmailFieldTests(TestCase):
|
||||||
|
"""
|
||||||
|
Tests for EmailField attribute values
|
||||||
|
"""
|
||||||
|
|
||||||
|
class EmailFieldModel(RESTFrameworkModel):
|
||||||
|
email_field = models.EmailField(blank=True)
|
||||||
|
|
||||||
|
class EmailFieldWithGivenMaxLengthModel(RESTFrameworkModel):
|
||||||
|
email_field = models.EmailField(max_length=150, blank=True)
|
||||||
|
|
||||||
|
def test_default_model_value(self):
|
||||||
|
class EmailFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.EmailFieldModel
|
||||||
|
|
||||||
|
serializer = EmailFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['email_field'], 'max_length'), 75)
|
||||||
|
|
||||||
|
def test_given_model_value(self):
|
||||||
|
class EmailFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.EmailFieldWithGivenMaxLengthModel
|
||||||
|
|
||||||
|
serializer = EmailFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['email_field'], 'max_length'), 150)
|
||||||
|
|
||||||
|
def test_given_serializer_value(self):
|
||||||
|
class EmailFieldSerializer(serializers.ModelSerializer):
|
||||||
|
email_field = serializers.EmailField(source='email_field', max_length=20, required=False)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = self.EmailFieldModel
|
||||||
|
|
||||||
|
serializer = EmailFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['email_field'], 'max_length'), 20)
|
||||||
|
|
||||||
|
|
||||||
|
class SlugFieldTests(TestCase):
|
||||||
|
"""
|
||||||
|
Tests for SlugField attribute values
|
||||||
|
"""
|
||||||
|
|
||||||
|
class SlugFieldModel(RESTFrameworkModel):
|
||||||
|
slug_field = models.SlugField(blank=True)
|
||||||
|
|
||||||
|
class SlugFieldWithGivenMaxLengthModel(RESTFrameworkModel):
|
||||||
|
slug_field = models.SlugField(max_length=84, blank=True)
|
||||||
|
|
||||||
|
def test_default_model_value(self):
|
||||||
|
class SlugFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.SlugFieldModel
|
||||||
|
|
||||||
|
serializer = SlugFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 50)
|
||||||
|
|
||||||
|
def test_given_model_value(self):
|
||||||
|
class SlugFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.SlugFieldWithGivenMaxLengthModel
|
||||||
|
|
||||||
|
serializer = SlugFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 84)
|
||||||
|
|
||||||
|
def test_given_serializer_value(self):
|
||||||
|
class SlugFieldSerializer(serializers.ModelSerializer):
|
||||||
|
slug_field = serializers.SlugField(source='slug_field', max_length=20, required=False)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = self.SlugFieldModel
|
||||||
|
|
||||||
|
serializer = SlugFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 20)
|
||||||
|
|
||||||
|
|
||||||
|
class URLFieldTests(TestCase):
|
||||||
|
"""
|
||||||
|
Tests for URLField attribute values
|
||||||
|
"""
|
||||||
|
|
||||||
|
class URLFieldModel(RESTFrameworkModel):
|
||||||
|
url_field = models.URLField(blank=True)
|
||||||
|
|
||||||
|
class URLFieldWithGivenMaxLengthModel(RESTFrameworkModel):
|
||||||
|
url_field = models.URLField(max_length=128, blank=True)
|
||||||
|
|
||||||
|
def test_default_model_value(self):
|
||||||
|
class URLFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.URLFieldModel
|
||||||
|
|
||||||
|
serializer = URLFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 200)
|
||||||
|
|
||||||
|
def test_given_model_value(self):
|
||||||
|
class URLFieldSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = self.URLFieldWithGivenMaxLengthModel
|
||||||
|
|
||||||
|
serializer = URLFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 128)
|
||||||
|
|
||||||
|
def test_given_serializer_value(self):
|
||||||
|
class URLFieldSerializer(serializers.ModelSerializer):
|
||||||
|
url_field = serializers.URLField(source='url_field', max_length=20, required=False)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = self.URLFieldWithGivenMaxLengthModel
|
||||||
|
|
||||||
|
serializer = URLFieldSerializer(data={})
|
||||||
|
self.assertEqual(serializer.is_valid(), True)
|
||||||
|
self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 20)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user