Esempio n. 1
0
def test_string_option_longform_equals():
    parser = args.ArgParser()
    parser.option("foo f")
    parser.parse(["--foo=bar"])
    assert parser.value("foo") == "bar"
    assert parser.found("foo") == True
    assert parser.count("foo") == 1
Esempio n. 2
0
def main():

    # The ArgParser class is the library's public interface.
    parser = args.ArgParser()

    # Specifying a helptext string activates an automatic --help/-h flag.
    parser.helptext = "Usage: example..."

    # Specifying a version string activates an automatic --version/-v flag.
    parser.version = "1.0"

    # Register a flag, --foo, with a single-character shortcut, -f.
    parser.flag("foo f")

    # Register a string-valued option, --bar <arg>, with a single-character
    # shortcut, -b <arg>.
    parser.option("bar b")

    # Register a command 'boo'.
    cmd_parser = parser.command("boo", "Usage: example boo...", cmd_callback)

    # Registering a command returns a new ArgParser instance which can support
    # its own flags and options.
    cmd_parser.flag("foo f")
    cmd_parser.option("bar b")

    # Parse the command line arguments.
    parser.parse()
    print(parser)
Esempio n. 3
0
def test_float_option():
    parser = args.ArgParser()
    parser.option("foo f", type=float)
    parser.parse(["--foo", "99.9"])
    assert parser.value("foo") == 99.9
    assert parser.found("foo") == True
    assert parser.count("foo") == 1
Esempio n. 4
0
def test_float_option_with_default():
    parser = args.ArgParser()
    parser.option("foo f", type=float, default=10.1)
    parser.parse([])
    assert parser.value("foo") == 10.1
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 5
0
def test_string_option_empty():
    parser = args.ArgParser()
    parser.option("foo f")
    parser.parse([])
    assert parser.value("foo") == None
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 6
0
def test_string_option_with_default():
    parser = args.ArgParser()
    parser.option("foo f", default="bar")
    parser.parse([])
    assert parser.value("foo") == "bar"
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 7
0
def test_string_option_shortform():
    parser = args.ArgParser()
    parser.option("foo f")
    parser.parse(["-f", "bar"])
    assert parser.value("foo") == "bar"
    assert parser.found("foo") == True
    assert parser.count("foo") == 1
Esempio n. 8
0
def test_string_option_missing():
    parser = args.ArgParser()
    parser.option("foo f")
    parser.parse(["bar", "baz"])
    assert parser.value("foo") == None
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 9
0
def test_positional_args():
    parser = args.ArgParser()
    parser.flag("foo")
    parser.option("bar")
    parser.parse(["--foo", "arg1", "--bar", "baz", "arg2"])
    assert len(parser.args) == 2
    assert parser.args[0] == "arg1"
    assert parser.args[1] == "arg2"
Esempio n. 10
0
def test_string_option_multiple():
    parser = args.ArgParser()
    parser.option("foo f")
    parser.parse(["--foo", "bar", "-f", "baz", "-ff", "bam", "bif"])
    assert parser.value("foo") == "bif"
    assert parser.found("foo") == True
    assert parser.count("foo") == 4
    assert parser.values("foo")[0] == "bar"
    assert parser.values("foo")[3] == "bif"
Esempio n. 11
0
def test_condensed_options():
    parser = args.ArgParser()
    parser.flag("x")
    parser.option("s")
    parser.option("i", type=int)
    parser.option("f", type=float)
    parser.parse(["-xsif", "strval", "99", "99.99"])
    assert parser.found("x") == True
    assert parser.value("s") == "strval"
    assert parser.value("i") == 99
    assert parser.value("f") == 99.99
Esempio n. 12
0
def test_command_with_options():
    parser = args.ArgParser()
    cmd_parser = parser.command("cmd")
    cmd_parser.flag("foo")
    cmd_parser.option("bar")
    parser.parse([
        "cmd",
        "--foo",
        "--bar",
        "barval",
        "arg1",
        "arg2",
    ])
    assert parser.command_name == "cmd"
    assert parser.command_parser.found("foo") == True
    assert parser.command_parser.value("bar") == "barval"
    assert len(parser.command_parser.args) == 2
Esempio n. 13
0
def test_string_option_missing_value():
    parser = args.ArgParser()
    parser.option("foo f")
    with pytest.raises(SystemExit):
        parser.parse(["--foo"])
Esempio n. 14
0
def test_int_option_invalid_value():
    parser = args.ArgParser()
    parser.option("foo f", type=int)
    with pytest.raises(SystemExit):
        parser.parse(["--foo", "bar"])
Esempio n. 15
0
def test_flag_multiple():
    parser = args.ArgParser()
    parser.flag("foo f")
    parser.parse(["-fff", "--foo"])
    assert parser.found("foo") == True
    assert parser.count("foo") == 4
Esempio n. 16
0
def test_flag_shortform():
    parser = args.ArgParser()
    parser.flag("foo f")
    parser.parse(["-f"])
    assert parser.found("foo") == True
    assert parser.count("foo") == 1
Esempio n. 17
0
def test_option_parsing_switch():
    parser = args.ArgParser()
    parser.parse(["foo", "--", "--bar", "--baz"])
    assert len(parser.args) == 3
Esempio n. 18
0
def test_int_option_negative_value():
    parser = args.ArgParser()
    parser.option("foo f", type=int)
    parser.parse(["--foo", "-999"])
    assert parser.value("foo") == -999
Esempio n. 19
0
def test_positional_args_empty():
    parser = args.ArgParser()
    parser.parse([])
    assert len(parser.args) == 0
Esempio n. 20
0
def test_flag_empty():
    parser = args.ArgParser()
    parser.flag("foo f")
    parser.parse([])
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 21
0
def test_flag_missing():
    parser = args.ArgParser()
    parser.flag("foo f")
    parser.parse(["bar", "baz"])
    assert parser.found("foo") == False
    assert parser.count("foo") == 0
Esempio n. 22
0
def test_unrecognised_longform_option():
    parser = args.ArgParser()
    with pytest.raises(SystemExit):
        parser.parse(["--foo"])
Esempio n. 23
0
def test_unrecognised_shortform_option():
    parser = args.ArgParser()
    with pytest.raises(SystemExit):
        parser.parse(["-f"])