Skip to content

Commit 4f2a3d4

Browse files
authored
[v2] Bugfix within shorthand example generation for map-type parameters in documentation (aws#9982)
* Update ParamShorthand DocGen to fix the case of a structure within a map. * Update test for testing deeply nested shorthand.
1 parent b3b5feb commit 4f2a3d4

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

awscli/argprocess.py

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

540540
def _map_docs(self, argument_model, stack):
541541
k = argument_model.key
542-
value_docs = self._shorthand_docs(argument_model.value, stack)
542+
stack.append(argument_model.value.name)
543+
try:
544+
value_docs = self._shorthand_docs(argument_model.value, stack)
545+
finally:
546+
stack.pop()
543547
start = 'KeyName1=%s,KeyName2=%s' % (value_docs, value_docs)
544548
if k.enum and not stack:
545549
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
@@ -869,6 +869,24 @@ def test_skip_deeply_nested_shorthand(self):
869869
generated_example = self.get_generated_example_for(argument)
870870
self.assertEqual(generated_example, '')
871871

872+
def test_structure_within_map(self):
873+
argument = self.create_argument(
874+
{
875+
'A': {
876+
'type': 'map',
877+
'key': {'type': 'string'},
878+
'value': {
879+
'type': 'structure',
880+
'members': {
881+
'B': {'type': 'string'},
882+
},
883+
},
884+
},
885+
}
886+
)
887+
generated_example = self.get_generated_example_for(argument)
888+
self.assertEqual('A={KeyName1={B=string},KeyName2={B=string}}', generated_example)
889+
872890

873891
class TestUnpackJSONParams(BaseArgProcessTest):
874892
def setUp(self):

0 commit comments

Comments
 (0)