aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Dvorak2012-12-03 19:07:07 +0100
committerMichal Dvorak2012-12-03 19:07:07 +0100
commitad01fa0eae990ca1607d44cbabba5425c9d0b9a4 (patch)
tree236e06381e0c325b55d17059c69a132e49416c33
parent9ae0ca1caeb7d195719b9544da2a3a7c4fc85b26 (diff)
downloaddjango-rest-framework-ad01fa0eae990ca1607d44cbabba5425c9d0b9a4.tar.bz2
#467 Added unit test
-rw-r--r--rest_framework/serializers.py8
-rw-r--r--rest_framework/tests/models.py3
-rw-r--r--rest_framework/tests/serializer.py27
3 files changed, 31 insertions, 7 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 2dab7914..e4fcbd67 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -428,11 +428,11 @@ class ModelSerializer(Serializer):
if max_length:
kwargs['max_length'] = max_length
- if model_field.verbose_name:
- kwargs['label'] = model_field.verbose_name
+ if model_field.verbose_name is not None:
+ kwargs['label'] = smart_unicode(model_field.verbose_name)
- if model_field.help_text:
- kwargs['help_text'] = model_field.help_text
+ if model_field.help_text is not None:
+ kwargs['help_text'] = smart_unicode(model_field.help_text)
field_mapping = {
models.FloatField: FloatField,
diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py
index c35861c6..a13f1ef3 100644
--- a/rest_framework/tests/models.py
+++ b/rest_framework/tests/models.py
@@ -1,6 +1,7 @@
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.generic import GenericForeignKey, GenericRelation
+from django.utils.translation import ugettext_lazy as _
# from django.contrib.auth.models import Group
@@ -56,7 +57,7 @@ class Anchor(RESTFrameworkModel):
class BasicModel(RESTFrameworkModel):
- text = models.CharField(max_length=100)
+ text = models.CharField(max_length=100, verbose_name=_("Text"), help_text=_("Text description."))
class SlugBasedModel(RESTFrameworkModel):
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 61a05da1..cc83a740 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -1,6 +1,6 @@
import datetime
from django.test import TestCase
-from rest_framework import serializers
+from rest_framework import serializers, fields
from rest_framework.tests.models import (ActionItem, Anchor, BasicModel,
BlankFieldModel, BlogPost, Book, CallableDefaultValueModel, DefaultValueModel,
ManyToManyModel, Person, ReadOnlyManyToManyModel)
@@ -48,7 +48,7 @@ class BookSerializer(serializers.ModelSerializer):
class ActionItemSerializer(serializers.ModelSerializer):
-
+
class Meta:
model = ActionItem
@@ -641,3 +641,26 @@ class BlankFieldTests(TestCase):
"""
serializer = self.not_blank_model_serializer_class(data=self.data)
self.assertEquals(serializer.is_valid(), False)
+
+
+# Test for issue #467
+class FieldLabelTest(TestCase):
+ def setUp(self):
+ class LabelModelSerializer(serializers.ModelSerializer):
+ # This is check that ctor supports both fields
+ additional = fields.CharField(label='Label', help_text='Help')
+
+ class Meta:
+ model = BasicModel
+
+ self.serializer_class = LabelModelSerializer
+
+ def test_label_from_model(self):
+ """
+ Validates that label and help_text are correctly copied from the model class.
+ """
+ serializer = self.serializer_class()
+ text_field = serializer.fields['text']
+
+ self.assertEquals('Text', text_field.label)
+ self.assertEquals('Text description.', text_field.help_text)