Пример #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_post_defaults():
    class CustomAction(Action):
        def __call__(self, parser, namespace, values, option_string=None):
            if not hasattr(namespace, 'post_set'):
                namespace.post_set = 'custom'

    p = ArgumentParser()
    p.add_argument('--post-set')
    p.add_argument('--custom', action=CustomAction, nargs=0)
    p.set_post_defaults(post_set='default')
    # Explicitly specified, no defaults should be set
    result = p.parse_args(['--post-set', 'manual'])
    assert result.post_set == 'manual'
    # Nothing supplied, should get the post set default
    result = p.parse_args([])
    assert result.post_set == 'default'
    # Custom action should be allowed to set default
    result = p.parse_args(['--custom'])
    assert result.post_set == 'custom'
Пример #5
0
def test_post_defaults():
    class CustomAction(Action):
        def __call__(self, parser, namespace, values, option_string=None):
            if not hasattr(namespace, 'post_set'):
                namespace.post_set = 'custom'

    p = ArgumentParser()
    p.add_argument('--post-set')
    p.add_argument('--custom', action=CustomAction, nargs=0)
    p.set_post_defaults(post_set='default')
    # Explicitly specified, no defaults should be set
    result = p.parse_args(['--post-set', 'manual'])
    assert result.post_set == 'manual'
    # Nothing supplied, should get the post set default
    result = p.parse_args([])
    assert result.post_set == 'default'
    # Custom action should be allowed to set default
    result = p.parse_args(['--custom'])
    assert result.post_set == 'custom'
Пример #6
0
def test_post_defaults():
    class CustomAction(Action):
        def __call__(self, parser, namespace, values, option_string=None):
            if not hasattr(namespace, "post_set"):
                namespace.post_set = "custom"

    p = ArgumentParser()
    p.add_argument("--post-set")
    p.add_argument("--custom", action=CustomAction, nargs=0)
    p.set_post_defaults(post_set="default")
    # Explicitly specified, no defaults should be set
    result = p.parse_args(["--post-set", "manual"])
    assert result.post_set == "manual"
    # Nothing supplied, should get the post set default
    result = p.parse_args([])
    assert result.post_set == "default"
    # Custom action should be allowed to set default
    result = p.parse_args(["--custom"])
    assert result.post_set == "custom"