Skip to content

Commit 79a63f2

Browse files
authored
Merge pull request #1 from sakurai-youhei/issue-106-correct-nesteddict2yaml
Fix nesteddict2yaml not to fumble empty dict values
2 parents ddf6e1f + cfa43f2 commit 79a63f2

File tree

4 files changed

+8
-1
lines changed

4 files changed

+8
-1
lines changed

aiohttp_swagger/helpers/builders.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def generate_doc_from_each_end_point(
9494
def nesteddict2yaml(d, indent=10, result=""):
9595
for key, value in d.items():
9696
result += " " * indent + str(key) + ':'
97-
if isinstance(value, dict):
97+
if isinstance(value, dict) and value:
9898
result = nesteddict2yaml(value, indent + 2, result + "\n")
9999
elif isinstance(value, str):
100100
result += " \"" + str(value) + "\"\n"

tests/data/example_data_definitions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
"type": "string",
3838
"description": "User's permission parameter",
3939
"default": "some_perm"
40+
},
41+
"permission_param_3": {
42+
"type": "object",
43+
"description": "User's permission parameter",
44+
"default": {}
4045
}
4146
},
4247
"required": [

tests/test_openapi.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ async def test_data_defs(aiohttp_client, loop):
309309
assert 'User' in result['components']['schemas']
310310
assert 'Permission' in result['components']['schemas']
311311
assert result['components']['schemas']['User']['properties']['permissions']['items']['$ref'] is not None
312+
assert result['components']['schemas']['Permission']['properties']['permission_param_3']['default'] is not None
312313

313314

314315
async def test_sub_app(aiohttp_client, loop):

tests/test_swagger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ async def test_data_defs(aiohttp_client, loop):
356356
assert 'User' in result['definitions']
357357
assert 'Permission' in result['definitions']
358358
assert result['definitions']['User']['properties']['permissions']['items']['$ref'] is not None
359+
assert result['definitions']['Permission']['properties']['permission_param_3']['default'] is not None
359360

360361

361362
async def test_sub_app(aiohttp_client, loop):

0 commit comments

Comments
 (0)