def test_trailing(): command, options = args.parse(['test', '--num', '1', '--', 'Trailing 1', 'Trailing 2']) expected = ['Trailing 1', 'Trailing 2'] assert command == 'test' assert options['TRAILING'] for e in expected: assert e in options['TRAILING'] # test with a corner case of a switch option before trailing command, options = args.parse(['test', '--num', '1', '--switch', '--', 'Trailing 1', 'Trailing 2']) for e in expected: assert e in options['TRAILING']
def test_parse(): command, options = args.parse(['test', '--num', '1', '--help', '--stuff', 'The remainder.', '--tail']) assert command, "There should be a command." assert options, "There should be options." assert command == "test", "command should be test" assert options["num"] == 1, "num option wrong" assert options["help"] == True, "help should be true" assert options["stuff"] == 'The remainder.', "stuff should a string" assert options['tail'] == True, "There should be a True tail." command2, options = args.parse(['--num', '1', '--help', '--stuff', 'The remainder.']) assert not command2, "There should NOT be a command." assert options, "There should be options." assert options["num"] == 1, "num option wrong" assert options["help"] == True, "help should be true" assert options["stuff"] == 'The remainder.', "stuff should a string"
def test_defaults(): command, options = args.parse(['test', '--num', '1', '--help', '--stuff', 'The remainder.']) args.ensure_defaults(options, {'num': 2, 'help': True, 'stuff': None}) assert options['help'] == True assert options['num'] == 1 command, options = args.parse(['test', '--num', '1', '--help', '--stuff', 'The remainder.']) args.ensure_defaults(options, {'num': 2, 'extras': 3, 'help': None, 'stuff': None}) assert options['extras'] == 3 assert options['num'] == 1 assert_raises(args.ArgumentError, args.ensure_defaults, options, {'num': 2, 'extras': 3, 'help': None, 'TRAILING': None}) assert_raises(args.ArgumentError, args.ensure_defaults, options, {'num': 2, 'extras': 3, 'help': None, 'bad': None})