Skip to content

Commit 40bfafc

Browse files
authored
Update ParamShorthand DocGen to fix the case of a structure within a map. (aws#10014)
1 parent 0ae2370 commit 40bfafc

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "bugfix",
3+
"category": "documentation",
4+
"description": "Fixed shorthand example generation in documentation."
5+
}

awscli/argprocess.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,11 @@ def _list_docs(self, argument_model, stack):
536536

537537
def _map_docs(self, argument_model, stack):
538538
k = argument_model.key
539-
value_docs = self._shorthand_docs(argument_model.value, stack)
539+
stack.append(argument_model.value.name)
540+
try:
541+
value_docs = self._shorthand_docs(argument_model.value, stack)
542+
finally:
543+
stack.pop()
540544
start = 'KeyName1=%s,KeyName2=%s' % (value_docs, value_docs)
541545
if k.enum and not stack:
542546
start += '\n\nWhere valid key names are:\n'

tests/unit/test_argprocess.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,24 @@ def test_skip_deeply_nested_shorthand(self):
803803
generated_example = self.get_generated_example_for(argument)
804804
self.assertEqual(generated_example, '')
805805

806+
def test_structure_within_map(self):
807+
argument = self.create_argument(
808+
{
809+
'A': {
810+
'type': 'map',
811+
'key': {'type': 'string'},
812+
'value': {
813+
'type': 'structure',
814+
'members': {
815+
'B': {'type': 'string'},
816+
},
817+
},
818+
},
819+
}
820+
)
821+
generated_example = self.get_generated_example_for(argument)
822+
self.assertEqual('A={KeyName1={B=string},KeyName2={B=string}}', generated_example)
823+
806824

807825
class TestUnpackJSONParams(BaseArgProcessTest):
808826
def setUp(self):

0 commit comments

Comments
 (0)