Add TestCases for default field values

This commit is contained in:
Stephan Groß 2013-05-18 16:24:54 +02:00
parent e6409bbc83
commit 9f9cb97d65
2 changed files with 82 additions and 21 deletions

View File

@ -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)

View File

@ -688,61 +688,124 @@ class ChoiceFieldTests(TestCase):
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): class SlugFieldTests(TestCase):
""" """
Tests for SlugField attribute values Tests for SlugField attribute values
""" """
def test_default_value(self): class SlugFieldModel(RESTFrameworkModel):
class SlugFieldModel(RESTFrameworkModel): slug_field = models.SlugField(blank=True)
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 SlugFieldSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = SlugFieldModel model = self.SlugFieldModel
serializer = SlugFieldSerializer(data={}) serializer = SlugFieldSerializer(data={})
self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.is_valid(), True)
self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 50) self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 50)
def test_given_value(self): def test_given_model_value(self):
class SlugFieldModel(RESTFrameworkModel):
slug_field = models.SlugField(max_length=84, blank=True)
class SlugFieldSerializer(serializers.ModelSerializer): class SlugFieldSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = SlugFieldModel model = self.SlugFieldWithGivenMaxLengthModel
serializer = SlugFieldSerializer(data={}) serializer = SlugFieldSerializer(data={})
self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.is_valid(), True)
self.assertEqual(getattr(serializer.fields['slug_field'], 'max_length'), 84) 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): class URLFieldTests(TestCase):
""" """
Tests for URLField attribute values Tests for URLField attribute values
""" """
def test_default_value(self): class URLFieldModel(RESTFrameworkModel):
class URLFieldModel(RESTFrameworkModel): url_field = models.URLField(blank=True)
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 URLFieldSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = URLFieldModel model = self.URLFieldModel
serializer = URLFieldSerializer(data={}) serializer = URLFieldSerializer(data={})
self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.is_valid(), True)
self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 200) self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 200)
def test_given_value(self): def test_given_model_value(self):
class URLFieldModel(RESTFrameworkModel):
url_field = models.URLField(max_length=128, blank=True)
class URLFieldSerializer(serializers.ModelSerializer): class URLFieldSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = URLFieldModel model = self.URLFieldWithGivenMaxLengthModel
serializer = URLFieldSerializer(data={}) serializer = URLFieldSerializer(data={})
self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.is_valid(), True)
self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 128) 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)