def test_gen_structure_list_scalar_docs(self): schema = { "type": "object", "properties": { "Consistent": { "type": "boolean", }, "Args": { "type": "array", "items": { "type": "string" } } } } argument = CustomArgument('test', schema=schema) argument.create_argument_object() p = argument.argument_object help_command = OperationHelpCommand(self.session, p.operation, None, {p.cli_name: argument}, name='foo', event_class='bar') help_command.param_shorthand.add_example_fn(p.cli_name, help_command) doc_string = p.example_fn(p) self.assertIn('Key value pairs', doc_string) self.assertIn('Consistent=boolean1,Args=string1,string2', doc_string)
def create_help_command(self): return OperationHelpCommand(self._service_object.session, self._service_object, self._operation_object, arg_table=self.arg_table, name=self._name, event_class=self._parent_name)
def create_help_command(self): return OperationHelpCommand(self._service_object.session, self._service_object, self._operation_object, arg_table=self.arg_table, name=self._name, event_class='.'.join(self.lineage_names))
def test_gen_map_type_docs(self): p = self.get_param_object('sqs.SetQueueAttributes.Attributes') argument = CLIArgument(p.cli_name, p, p.operation) help_command = OperationHelpCommand(self.session, p.operation, None, {p.cli_name: argument}) help_command.param_shorthand.add_example_fn(p.cli_name, help_command) self.assertTrue(p.example_fn) doc_string = p.example_fn(p) self.assertEqual(doc_string, MAPHELP)
def test_does_not_inject_when_no_pagination(self): with patch('awscli.customizations.paginate.get_paginator_config', return_value=None): help_command = OperationHelpCommand(Mock(), Mock(), Mock(), 'foo', OperationDocumentEventHandler) help_command.obj = Mock(OperationModel) help_command.obj.name = 'foo' paginate.add_paging_description(help_command) self.assertNotIn('``foo`` is a paginated operation', help_command.doc.getvalue().decode())
def test_shows_result_keys_when_array(self): with patch('awscli.customizations.paginate.get_paginator_config', return_value={'result_key': ['abc', '123']}): help_command = OperationHelpCommand(Mock(), Mock(), Mock(), 'foo', OperationDocumentEventHandler) help_command.obj = Mock(OperationModel) help_command.obj.name = 'foo' paginate.add_paging_description(help_command) self.assertIn('following query expressions: ``abc``, ``123``', help_command.doc.getvalue().decode())
def test_gen_list_structure_multiple_scalar_docs(self): p = self.get_param_object('elastictranscoder.CreateJob.Playlists') argument = CLIArgument(p.cli_name, p, p.operation) help_command = OperationHelpCommand(self.session, p.operation, None, {p.cli_name: argument}) help_command.param_shorthand.add_example_fn(p.cli_name, help_command) self.assertTrue(p.example_fn) doc_string = p.example_fn(p) s = 'Key value pairs, where values are separated by commas.\n--playlists Name=string1,Format=string1,OutputKeys=string1,string2' self.assertEqual(doc_string, s)
def test_gen_list_scalar_docs(self): p = self.get_param_object( 'elb.RegisterInstancesWithLoadBalancer.Instances') argument = CLIArgument(p.cli_name, p, p.operation) help_command = OperationHelpCommand(self.session, p.operation, None, {p.cli_name: argument}) help_command.param_shorthand.add_example_fn(p.cli_name, help_command) self.assertTrue(p.example_fn) doc_string = p.example_fn(p) self.assertEqual(doc_string, '--instances InstanceId1 InstanceId2 InstanceId3')
def test_does_not_show_result_key_if_not_present(self): with patch('awscli.customizations.paginate.get_paginator_config', return_value={'limit_key': 'aaa'}): help_command = OperationHelpCommand(Mock(), Mock(), Mock(), 'foo', OperationDocumentEventHandler) help_command.obj = Mock(OperationModel) help_command.obj.name = 'foo' paginate.add_paging_description(help_command) self.assertIn('``foo`` is a paginated operation. Multiple API', help_command.doc.getvalue().decode()) self.assertNotIn('following query expressions', help_command.doc.getvalue().decode())
def test_injects_pagination_help_text(self): with patch('awscli.customizations.paginate.get_paginator_config', return_value={'result_key': 'abc'}): help_command = OperationHelpCommand(Mock(), Mock(), Mock(), 'foo', OperationDocumentEventHandler) help_command.obj = Mock(OperationModel) help_command.obj.name = 'foo' paginate.add_paging_description(help_command) self.assertIn('``foo`` is a paginated operation. Multiple API', help_command.doc.getvalue().decode()) self.assertIn('following query expressions: ``abc``', help_command.doc.getvalue().decode())
def test_gen_list_structure_of_scalars_docs(self): p = self.get_param_object('elb.CreateLoadBalancer.Listeners') argument = CLIArgument(p.cli_name, p, p.operation) help_command = OperationHelpCommand( self.session, p.operation, None, {p.cli_name: argument}, name='create-load-balancer', event_class='elb') help_command.param_shorthand.add_example_fn(p.cli_name, help_command) self.assertTrue(p.example_fn) doc_string = p.example_fn(p) self.assertIn('Key value pairs, with multiple values separated by a space.', doc_string) self.assertIn('Protocol=string', doc_string) self.assertIn('LoadBalancerPort=integer', doc_string) self.assertIn('InstanceProtocol=string', doc_string) self.assertIn('InstancePort=integer', doc_string) self.assertIn('SSLCertificateId=string', doc_string)
def test_gen_list_structure_list_scalar_scalar_docs(self): # Verify that we have *two* top level list items displayed, # so we make it clear that multiple values are separated by spaces. p = self.get_param_object('ec2.DescribeInstances.Filters') argument = CLIArgument(p.cli_name, p, p.operation) help_command = OperationHelpCommand(self.session, p.operation, None, {p.cli_name: argument}, name='describe-instances', event_class='ec2') help_command.param_shorthand.add_example_fn(p.cli_name, help_command) doc_string = p.example_fn(p) self.assertIn('multiple pairs are separated by spaces', doc_string) self.assertIn( 'Name=string1,Values=string1,string2 ' 'Name=string1,Values=string1,string2', doc_string)
def create_help_command(self): return OperationHelpCommand(self._session, operation_model=self._operation_model, arg_table=self.arg_table, name=self._name, event_class='.'.join(self.lineage_names))
def create_help_command(self): return OperationHelpCommand(self._service_object.session, self._service_object, self._operation_object, arg_table=self.arg_table)