diff --git a/aiohttp_swagger/helpers/builders.py b/aiohttp_swagger/helpers/builders.py index 6d32b2b..b2d005c 100644 --- a/aiohttp_swagger/helpers/builders.py +++ b/aiohttp_swagger/helpers/builders.py @@ -94,7 +94,7 @@ def generate_doc_from_each_end_point( def nesteddict2yaml(d, indent=10, result=""): for key, value in d.items(): result += " " * indent + str(key) + ':' - if isinstance(value, dict): + if isinstance(value, dict) and value: result = nesteddict2yaml(value, indent + 2, result + "\n") elif isinstance(value, str): result += " \"" + str(value) + "\"\n" diff --git a/tests/data/example_data_definitions.json b/tests/data/example_data_definitions.json index dcd9c26..3625b43 100644 --- a/tests/data/example_data_definitions.json +++ b/tests/data/example_data_definitions.json @@ -37,6 +37,11 @@ "type": "string", "description": "User's permission parameter", "default": "some_perm" + }, + "permission_param_3": { + "type": "object", + "description": "User's permission parameter", + "default": {} } }, "required": [ diff --git a/tests/test_openapi.py b/tests/test_openapi.py index b21bd0b..8baa6be 100644 --- a/tests/test_openapi.py +++ b/tests/test_openapi.py @@ -309,6 +309,7 @@ async def test_data_defs(aiohttp_client, loop): assert 'User' in result['components']['schemas'] assert 'Permission' in result['components']['schemas'] assert result['components']['schemas']['User']['properties']['permissions']['items']['$ref'] is not None + assert result['components']['schemas']['Permission']['properties']['permission_param_3']['default'] is not None async def test_sub_app(aiohttp_client, loop): diff --git a/tests/test_swagger.py b/tests/test_swagger.py index 3001fbc..27c8d64 100644 --- a/tests/test_swagger.py +++ b/tests/test_swagger.py @@ -356,6 +356,7 @@ async def test_data_defs(aiohttp_client, loop): assert 'User' in result['definitions'] assert 'Permission' in result['definitions'] assert result['definitions']['User']['properties']['permissions']['items']['$ref'] is not None + assert result['definitions']['Permission']['properties']['permission_param_3']['default'] is not None async def test_sub_app(aiohttp_client, loop):