aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorStephan Groß2013-05-18 16:24:54 +0200
committerStephan Groß2013-05-18 16:24:54 +0200
commit9f9cb97d6538e320a0740749b200d418d9d52040 (patch)
tree83c181fa4f9fa89c4d68beeee994f7917bcb6dc1 /rest_framework
parente6409bbc836cbe61be7f525900f5bc0616f5c225 (diff)
downloaddjango-rest-framework-9f9cb97d6538e320a0740749b200d418d9d52040.tar.bz2
Add TestCases for default field values
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/fields.py2
-rw-r--r--rest_framework/tests/fields.py99
2 files changed, 81 insertions, 20 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 491aa7ed..fc14184c 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -383,7 +383,6 @@ class URLField(CharField):
type_name = 'URLField'
def __init__(self, **kwargs):
- kwargs['max_length'] = kwargs.get('max_length', 200)
kwargs['validators'] = [validators.URLValidator()]
super(URLField, self).__init__(**kwargs)
@@ -392,7 +391,6 @@ class SlugField(CharField):
type_name = 'SlugField'
def __init__(self, *args, **kwargs):
- kwargs['max_length'] = kwargs.get('max_length', 50)
super(SlugField, self).__init__(*args, **kwargs)
diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py
index cb5b05dc..d82f6b23 100644
--- a/rest_framework/tests/fields.py
+++ b/rest_framework/tests/fields.py
@@ -688,61 +688,124 @@ class ChoiceFieldTests(TestCase):
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
"""
- def test_default_value(self):
- class SlugFieldModel(RESTFrameworkModel):
- slug_field = models.SlugField(blank=True)
+ 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 = SlugFieldModel
+ 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_value(self):
- class SlugFieldModel(RESTFrameworkModel):
- slug_field = models.SlugField(max_length=84, blank=True)
-
+ def test_given_model_value(self):
class SlugFieldSerializer(serializers.ModelSerializer):
class Meta:
- model = SlugFieldModel
+ 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
"""
- def test_default_value(self):
- class URLFieldModel(RESTFrameworkModel):
- url_field = models.URLField(blank=True)
+ 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 = URLFieldModel
+ 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_value(self):
- class URLFieldModel(RESTFrameworkModel):
- url_field = models.URLField(max_length=128, blank=True)
+ 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 = URLFieldModel
+ model = self.URLFieldWithGivenMaxLengthModel
serializer = URLFieldSerializer(data={})
self.assertEqual(serializer.is_valid(), True)
- self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 128) \ No newline at end of file
+ self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 20) \ No newline at end of file