          expected = {
              'field1': {u'help_text': u'',
                         u'label': u'field one',
                         u'max_length': 3,
                         u'required': True,
                         u'type': u'String'},
              'field2': {u'help_text': u'',
                         u'label': u'field two',
                         u'required': True,
                         u'type': u'String'}}
          self.assertEqual(humanized, expected)
 
</s> remove             'field1': {u'help_text': u'',
                       u'label': u'field one',
 </s> add             'field1': {u'required': True, </s> remove         humanized = humanize_form_fields(Form())
 </s> add         humanized = self.serializer.humanized </s> remove         self.serializer = TimestampedModelSerializer()
 </s> add         self.serializer = HumanizableSerializer() </s> remove def humanize_field_type(field_type):
    """Return a human-readable name for a field type.

    :param field_type: Either a field type class (for example
        django.forms.fields.DateTimeField), or the name of a field type
        (for example "DateTimeField").

    :return: unicode

    """
    if isinstance(field_type, basestring):
        field_type_name = field_type
    else:
        field_type_name = field_type.__name__
    try:
        return HUMANIZED_FIELD_TYPES[field_type_name]
    except KeyError:
        humanized = re.sub('([a-z0-9])([A-Z])', r'\1 \2', field_type_name)
        return humanized.capitalize()


def humanize_field(field):
    """Return a human-readable description of a field.

    :param field: A Django field.

    :return: A dictionary of the form {type: type name, required: bool,
             label: field label: read_only: bool,
             help_text: optional help text}

    """
    humanized = {
        'type': humanize_field_type(field.__class__),
        'required': getattr(field, 'required', False),
    }
    optional_attrs = ['read_only', 'help_text', 'label',
                      'min_length', 'max_length']
    for attr in optional_attrs:
        if getattr(field, attr, None) is not None:
            humanized[attr] = getattr(field, attr)
    return humanized


 </s> add 
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
          expected = {
              'field1': {u'help_text': u'',
                         u'label': u'field one',
                         u'max_length': 3,
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
                       u'type': u'CharField',
                       u'read_only': False},
            'field2': {u'required': False,
                       u'max_length': 10,
                       u'type': u'CharField',
                       u'read_only': False}}
        self.assertEqual(set(expected.keys()), set(humanized.keys()))
        for k, v in humanized.iteritems():
            self.assertEqual(v, expected[k])
keep keep keep keep replace replace replace replace replace replace replace
 simplified, moved field humanizing to Field. broken tests 
rest_framework/tests/fields.py