示例#1
0
def test_subparser_parent_defaults():
    p = ArgumentParser()
    p.add_argument('--a')
    p.set_post_defaults(a='default')
    p.add_subparsers()
    p.add_subparser('sub')
    p.add_subparser('sub_with_default', parent_defaults={'a': 'sub_default'})
    # Make sure normal default works
    result = p.parse_args(['sub'])
    assert result.a == 'default'
    # Test subparser default
    result = p.parse_args(['sub_with_default'])
    assert result.a == 'sub_default'
    # Subparser default should not override explicit one
    result = p.parse_args(['--a', 'manual', 'sub_with_default'])
    assert result.a == 'manual'
示例#2
0
def test_subparser_parent_defaults():
    p = ArgumentParser()
    p.add_argument('--a')
    p.set_post_defaults(a='default')
    p.add_subparsers()
    p.add_subparser('sub')
    p.add_subparser('sub_with_default', parent_defaults={'a': 'sub_default'})
    # Make sure normal default works
    result = p.parse_args(['sub'])
    assert result.a == 'default'
    # Test subparser default
    result = p.parse_args(['sub_with_default'])
    assert result.a == 'sub_default'
    # Subparser default should not override explicit one
    result = p.parse_args(['--a', 'manual', 'sub_with_default'])
    assert result.a == 'manual'
示例#3
0
def test_subparser_parent_defaults():
    p = ArgumentParser()
    p.add_argument("--a")
    p.set_post_defaults(a="default")
    p.add_subparsers()
    p.add_subparser("sub")
    p.add_subparser("sub_with_default", parent_defaults={"a": "sub_default"})
    # Make sure normal default works
    result = p.parse_args(["sub"])
    assert result.a == "default"
    # Test subparser default
    result = p.parse_args(["sub_with_default"])
    assert result.a == "sub_default"
    # Subparser default should not override explicit one
    result = p.parse_args(["--a", "manual", "sub_with_default"])
    assert result.a == "manual"
示例#4
0
def test_subparser_nested_namespace():
    p = ArgumentParser()
    p.add_argument('--outer')
    p.add_subparsers(nested_namespaces=True)
    sub = p.add_subparser('sub')
    sub.add_argument('--inner')
    sub.add_subparsers()
    subsub = sub.add_subparser('subsub')
    subsub.add_argument('--innerinner')
    result = p.parse_args(['--outer', 'a', 'sub', '--inner', 'b', 'subsub', '--innerinner', 'c'])
    assert result.outer == 'a'
    # First subparser values should be nested under subparser name
    assert result.sub.inner == 'b'
    assert not hasattr(result, 'inner')
    # The second layer did not define nested_namespaces, results should be in first subparser namespace
    assert result.sub.innerinner == 'c'
    assert not hasattr(result, 'innerinner')
示例#5
0
def test_subparser_nested_namespace():
    p = ArgumentParser()
    p.add_argument("--outer")
    p.add_subparsers(nested_namespaces=True)
    sub = p.add_subparser("sub")
    sub.add_argument("--inner")
    sub.add_subparsers()
    subsub = sub.add_subparser("subsub")
    subsub.add_argument("--innerinner")
    result = p.parse_args(["--outer", "a", "sub", "--inner", "b", "subsub", "--innerinner", "c"])
    assert result.outer == "a"
    # First subparser values should be nested under subparser name
    assert result.sub.inner == "b"
    assert not hasattr(result, "inner")
    # The second layer did not define nested_namespaces, results should be in first subparser namespace
    assert result.sub.innerinner == "c"
    assert not hasattr(result, "innerinner")
示例#6
0
def test_subparser_nested_namespace():
    p = ArgumentParser()
    p.add_argument('--outer')
    p.add_subparsers(nested_namespaces=True)
    sub = p.add_subparser('sub')
    sub.add_argument('--inner')
    sub.add_subparsers()
    subsub = sub.add_subparser('subsub')
    subsub.add_argument('--innerinner')
    result = p.parse_args(
        ['--outer', 'a', 'sub', '--inner', 'b', 'subsub', '--innerinner', 'c'])
    assert result.outer == 'a'
    # First subparser values should be nested under subparser name
    assert result.sub.inner == 'b'
    assert not hasattr(result, 'inner')
    # The second layer did not define nested_namespaces, results should be in first subparser namespace
    assert result.sub.innerinner == 'c'
    assert not hasattr(result, 'innerinner')