aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOscar Vilaplana2013-05-18 18:27:53 +0200
committerOscar Vilaplana2013-05-18 18:27:53 +0200
commitfecadacab150aab48b8b84f4f0e5340ead74c287 (patch)
tree9a2c2465cbec6ab70c801d929410fb74aef2c701
parent4dffcb5d77a575793c1dc7c1db5242a3ac2d7345 (diff)
downloaddjango-rest-framework-fecadacab150aab48b8b84f4f0e5340ead74c287.tar.bz2
added tests for form
-rw-r--r--rest_framework/fields.py6
-rw-r--r--rest_framework/tests/fields.py23
2 files changed, 25 insertions, 4 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index b23813ec..544afc98 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -135,8 +135,7 @@ def humanize_field(field):
"""
humanized = {
- 'type': (field.type_name if field.type_name
- else humanize_field_type(field.form_field_class)),
+ 'type': humanize_field_type(field.__class__),
'required': getattr(field, 'required', False),
'label': field.label,
}
@@ -154,7 +153,8 @@ def humanize_form_fields(form):
:return: A dictionary of {field_label: humanized description}
"""
- fields = SortedDict([(f.name, humanize_field(f)) for f in form.fields])
+ fields = SortedDict([(name, humanize_field(field))
+ for name, field in form.fields.iteritems()])
return fields
diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py
index de61b011..6a180cb8 100644
--- a/rest_framework/tests/fields.py
+++ b/rest_framework/tests/fields.py
@@ -4,7 +4,8 @@ General serializer field tests.
from __future__ import unicode_literals
from django.utils.datastructures import SortedDict
import datetime
-from rest_framework.fields import humanize_field, humanize_field_type
+from rest_framework.fields import (humanize_field, humanize_field_type,
+ humanize_form_fields)
from django import forms
from decimal import Decimal
from django.db import models
@@ -742,3 +743,23 @@ class HumanizedField(TestCase):
def test_label(self):
for field in (self.required_field, self.optional_field):
self.assertEqual(humanize_field(field)['label'], field.label)
+
+
+class Form(forms.Form):
+ field1 = forms.CharField(max_length=3, label='field one')
+ field2 = forms.CharField(label='field two')
+
+
+class HumanizedSerializer(TestCase):
+ def setUp(self):
+ self.serializer = TimestampedModelSerializer()
+
+ def test_humanized(self):
+ humanized = humanize_form_fields(Form())
+ self.assertEqual(humanized, {
+ 'field1': {
+ u'help_text': u'', u'required': True,
+ u'type': u'Single Character', u'label': 'field one'},
+ 'field2': {
+ u'help_text': u'', u'required': True,
+ u'type': u'Single Character', u'label': 'field two'}})