diff --git a/passerelle/base/templatetags/passerelle.py b/passerelle/base/templatetags/passerelle.py
index 71467189..89836ba4 100644
--- a/passerelle/base/templatetags/passerelle.py
+++ b/passerelle/base/templatetags/passerelle.py
@@ -208,13 +208,13 @@ def render_json_schema(schema):
s += format_html('\n
{}
', description)
s += ' '
- def render_property_schema(key, sub):
+ def render_property_schema(key, html, sub):
nonlocal s
required = key in required_keys
sub_description = sub.pop('description', '')
sub_title = sub.pop('title', '')
- s += format_html('{0}', key)
+ s += format_html('{0}', html)
if required:
s += format_html('*', _('required'))
if description or sub:
@@ -238,7 +238,7 @@ def render_json_schema(schema):
keys = sorted(properties, key=lambda key: key.lower())
for key in keys:
sub = properties.get(key, {}).copy()
- render_property_schema(format_html('{0}', key), sub)
+ render_property_schema(key, format_html('{0}', key), sub)
if one_of and one_of[0].get('required'):
s += many_of('oneOf', one_of)
@@ -250,7 +250,7 @@ def render_json_schema(schema):
pattern_key = format_html('/{0}/', key)
else:
pattern_key = format_html('any')
- render_property_schema(pattern_key, sub)
+ render_property_schema(key, pattern_key, sub)
s += ''
if properties or pattern_properties:
diff --git a/tests/test_templatetags.py b/tests/test_templatetags.py
index d90c7fd8..62181fba 100644
--- a/tests/test_templatetags.py
+++ b/tests/test_templatetags.py
@@ -18,6 +18,7 @@ import inspect
from django.apps import apps
from django.utils import translation
+from pyquery import PyQuery as pq
from passerelle.base.templatetags.passerelle import render_body_schemas, render_json_schema
@@ -78,6 +79,13 @@ def test_render_pattern_description():
assert 'abc' not in render_json_schema(schema) and 'efg' in render_json_schema(schema)
+def test_render_required_properties():
+ schema = {'type': 'object', 'required': ['filename'], 'properties': {'filename': {'type': 'string'}}}
+ html = render_json_schema(schema)
+ assert pq(html)('li span.required')
+ assert pq(html)('li').text() == 'filename* : string'
+
+
def test_render_oneof_property_required():
schema = {
'type': 'object',
diff --git a/tox.ini b/tox.ini
index dc77d43c..1236646b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -80,6 +80,7 @@ deps =
pylint-django
django-webtest<1.9.3
pytest-freezegun
+ pyquery
responses
mohawk
ldaptools