<s> from cleo . inputs import ListInput , InputDefinition , InputArgument , InputOption <EOL> from . . import CleoTestCase <EOL> class ListInputTest ( CleoTestCase ) : <EOL> def test_get_first_argument ( self ) : <EOL> input_ = ListInput ( [ ] ) <EOL> self . assertEqual ( None , input_ . get_first_argument ( ) ) <EOL> input_ = ListInput ( [ ( '<STR_LIT:name>' , '<STR_LIT>' ) ] ) <EOL> self . assertEqual ( '<STR_LIT>' , input_ . get_first_argument ( ) ) <EOL> input_ = ListInput ( [ ( '<STR_LIT>' , '<STR_LIT:bar>' ) , ( '<STR_LIT:name>' , '<STR_LIT>' ) ] ) <EOL> self . assertEqual ( '<STR_LIT>' , input_ . get_first_argument ( ) ) <EOL> def test_has_parameter_option ( self ) : <EOL> input_ = ListInput ( [ ( '<STR_LIT:name>' , '<STR_LIT>' ) , ( '<STR_LIT>' , '<STR_LIT:bar>' ) ] ) <EOL> self . assertTrue ( input_ . has_parameter_option ( '<STR_LIT>' ) ) <EOL> self . assertFalse ( input_ . has_parameter_option ( '<STR_LIT>' ) ) <EOL> input_ = ListInput ( [ '<STR_LIT>' ] ) <EOL> self . assertTrue ( input_ . has_parameter_option ( '<STR_LIT>' ) ) <EOL> def test_parse_arguments ( self ) : <EOL> input_ = ListInput ( <EOL> [ ( '<STR_LIT:name>' , '<STR_LIT:foo>' ) ] , <EOL> InputDefinition ( [ <EOL> InputArgument ( '<STR_LIT:name>' ) <EOL> ] ) <EOL> ) <EOL> self . assertEqual ( { '<STR_LIT:name>' : '<STR_LIT:foo>' } , input_ . get_arguments ( ) ) <EOL> def test_parse_options ( self ) : <EOL> for iopts , opts , expected in self . provide_options ( ) : <EOL> input_ = ListInput ( iopts , InputDefinition ( opts ) ) <EOL> self . assertEqual ( expected , input_ . get_options ( ) ) <EOL> def provide_options ( self ) : <EOL> return [ <EOL> ( <EOL> [ ( '<STR_LIT>' , '<STR_LIT:bar>' ) ] , <EOL> [ InputOption ( '<STR_LIT:foo>' ) ] , <EOL> { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> ) , <EOL> ( <EOL> [ ( '<STR_LIT>' , '<STR_LIT:bar>' ) ] , <EOL> [ InputOption ( '<STR_LIT:foo>' , '<STR_LIT:f>' , InputOption . VALUE_OPTIONAL , '<STR_LIT>' , '<STR_LIT:default>' ) ] , <EOL> { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> ) , <EOL> ( <EOL> [ '<STR_LIT>' ] , <EOL> [ InputOption ( '<STR_LIT:foo>' , '<STR_LIT:f>' , InputOption . VALUE_OPTIONAL , '<STR_LIT>' , '<STR_LIT:default>' ) ] , <EOL> { '<STR_LIT:foo>' : '<STR_LIT:default>' } <EOL> ) , <EOL> ( <EOL> [ ( '<STR_LIT>' , '<STR_LIT:bar>' ) ] , <EOL> [ InputOption ( '<STR_LIT:foo>' , '<STR_LIT:f>' ) ] , <EOL> { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> ) , <EOL> ] <EOL> def test_parse_invalid_input ( self ) : <EOL> for args , definition , expected in self . provider_invalid_input ( ) : <EOL> self . assertRaisesRegexp ( <EOL> Exception , <EOL> expected , <EOL> ListInput , <EOL> args , <EOL> definition <EOL> ) <EOL> def provider_invalid_input ( self ) : <EOL> return [ <EOL> ( <EOL> [ ( '<STR_LIT:foo>' , '<STR_LIT:bar>' ) ] , <EOL> InputDefinition ( [ <EOL> InputArgument ( '<STR_LIT:name>' ) <EOL> ] ) , <EOL> '<STR_LIT>' <EOL> ) , <EOL> ( <EOL> [ '<STR_LIT>' ] , <EOL> InputDefinition ( [ <EOL> InputOption ( '<STR_LIT:foo>' , '<STR_LIT:f>' , InputOption . VALUE_REQUIRED ) <EOL> ] ) , <EOL> '<STR_LIT>' <EOL> ) , <EOL> ( <EOL> [ ( '<STR_LIT>' , '<STR_LIT:foo>' ) ] , <EOL> InputDefinition ( ) , <EOL> '<STR_LIT>' <EOL> ) , <EOL> ( <EOL> [ ( '<STR_LIT>' , '<STR_LIT:foo>' ) ] , <EOL> InputDefinition ( ) , <EOL> '<STR_LIT>' <EOL> ) , <EOL> ] </s>
