This commit is contained in:
chris 2019-07-24 12:03:41 +02:00
parent 659375ffe6
commit 8d8ba719e4
2 changed files with 11 additions and 1 deletions

View File

@ -377,7 +377,7 @@ class AutoSchema(ViewInspector):
if field.default and field.default != empty: # why don't they use None?!
schema['default'] = field.default
if field.help_text:
schema['description'] = field.help_text
schema['description'] = force_text(field.help_text)
self._map_field_validators(field.validators, schema)
properties[field.field_name] = schema

View File

@ -1,6 +1,7 @@
import pytest
from django.conf.urls import url
from django.test import RequestFactory, TestCase, override_settings
from django.utils.translation import ugettext_lazy as _
from rest_framework import filters, generics, pagination, routers, serializers
from rest_framework.compat import uritemplate
@ -273,6 +274,15 @@ class TestOperationIntrospection(TestCase):
assert response_schema['ip']['type'] == 'string'
assert 'format' not in response_schema['ip']
def test_lazy_string_field(self):
class Serializer(serializers.Serializer):
text = serializers.CharField(help_text=_('lazy string'))
inspector = AutoSchema()
data = inspector._map_serializer(Serializer())
assert isinstance(data['properties']['text']['description'], str), "description must be str"
@pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.')
@override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.openapi.AutoSchema'})