diff options
| author | Tom Christie | 2014-12-15 09:13:02 +0000 |
|---|---|---|
| committer | Tom Christie | 2014-12-15 09:13:02 +0000 |
| commit | 5e7c9687c7e11b6adfe2fc534eb0504e67ca9fc9 (patch) | |
| tree | 8a6132031a0535e86efcbef5669ee4bb17825fc2 | |
| parent | a72f812d80a4000e86a5ad96001f3fbf43fe310a (diff) | |
| download | django-rest-framework-5e7c9687c7e11b6adfe2fc534eb0504e67ca9fc9.tar.bz2 | |
First pass at serializer repr bug
| -rw-r--r-- | rest_framework/utils/representation.py | 3 | ||||
| -rw-r--r-- | tests/test_serializer.py | 17 |
2 files changed, 19 insertions, 1 deletions
diff --git a/rest_framework/utils/representation.py b/rest_framework/utils/representation.py index 3f17a8b9..0fdb4775 100644 --- a/rest_framework/utils/representation.py +++ b/rest_framework/utils/representation.py @@ -2,6 +2,7 @@ Helper functions for creating user-friendly representations of serializer classes and serializer fields. """ +from __future__ import unicode_literals from django.db import models from django.utils.encoding import force_text from django.utils.functional import Promise @@ -24,7 +25,7 @@ def smart_repr(value): if isinstance(value, Promise) and value._delegate_text: value = force_text(value) - value = repr(value) + value = repr(value).decode('utf-8') # Representations like u'help text' # should simply be presented as 'help text' diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 56b39095..48fcc83b 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -1,3 +1,4 @@ +# coding: utf-8 from __future__ import unicode_literals from rest_framework import serializers import pytest @@ -197,3 +198,19 @@ class TestIncorrectlyConfigured: "The serializer field might be named incorrectly and not match any attribute or key on the `ExampleObject` instance.\n" "Original exception text was:" ) + + +class TestUnicodeRepr: + def test_unicode_repr(self): + class ExampleSerializer(serializers.Serializer): + example = serializers.CharField() + + class ExampleObject: + def __init__(self): + self.example = '한국' + def __repr__(self): + return self.example.encode('utf8') + + instance = ExampleObject() + serializer = ExampleSerializer(instance) + repr(serializer) |
