Example #1
0
def test_structure_flag_single():
    foo_argument = structure_flags(['foo'])
    assert isinstance(foo_argument, StructuredArguments)
    assert isinstance(foo_argument.single_argument, SingleArgument)
    assert not foo_argument.named_arguments
    assert not foo_argument.named_key_arguments
    assert foo_argument.single_argument.value == 'foo'
Example #2
0
def test_structure_flag_double_dup_fails():
    with pytest.raises(StructuredArgumentsError, match='Cannot specify name twice'):
        structure_flags(['foo=foo_arg', 'foo=bar_arg'])

    with pytest.raises(StructuredArgumentsError):
        structure_flags(['foo=foo_arg', 'foo.key=bar_arg'])

    with pytest.raises(StructuredArgumentsError):
        structure_flags(['foo.key=foo_arg', 'foo=bar_arg'])

    with pytest.raises(StructuredArgumentsError, match='Cannot specify key'):
        structure_flags(['foo.key=foo_arg', 'foo.key=bar_arg'])
Example #3
0
def test_structure_flag_double_named():
    structured_arguments = structure_flags(['foo=foo_arg', 'bar=bar_arg'])
    assert not structured_arguments.single_argument
    assert len(structured_arguments.named_arguments) == 2
    assert not structured_arguments.named_key_arguments

    assert structured_arguments.named_arguments[0].name == 'foo'
    assert structured_arguments.named_arguments[0].value == 'foo_arg'

    assert structured_arguments.named_arguments[1].name == 'bar'
    assert structured_arguments.named_arguments[1].value == 'bar_arg'
Example #4
0
def test_structure_flag_single_named_equal_in_name():
    structured_arguments = structure_flags(['foo=bar='])
    assert isinstance(structured_arguments, StructuredArguments)
    assert len(structured_arguments.named_arguments) == 1
    assert not structured_arguments.named_key_arguments

    named_argument = structured_arguments.named_arguments[0]

    assert isinstance(named_argument, NamedArgument)
    assert named_argument.name == 'foo'
    assert named_argument.value == 'bar='
Example #5
0
def test_structure_flag_single_named_key():
    structured_arguments = structure_flags(['foo.baz=bar'])
    assert isinstance(structured_arguments, StructuredArguments)
    assert len(structured_arguments.named_key_arguments) == 1
    assert not structured_arguments.named_arguments

    named_key_argument = structured_arguments.named_key_arguments[0]

    assert isinstance(named_key_argument, NamedKeyArgument)
    assert named_key_argument.name == 'foo'
    assert named_key_argument.key == 'baz'
    assert named_key_argument.value == 'bar'
Example #6
0
def test_structure_two_keys():
    structured_arguments = structure_flags(['foo.key1=key1_arg', 'foo.key2=key2_arg'])
    assert not structured_arguments.single_argument
    assert not structured_arguments.named_arguments
    assert len(structured_arguments.named_key_arguments) == 2

    assert structured_arguments.named_key_arguments[0].name == 'foo'
    assert structured_arguments.named_key_arguments[0].key == 'key1'
    assert structured_arguments.named_key_arguments[0].value == 'key1_arg'

    assert structured_arguments.named_key_arguments[1].name == 'foo'
    assert structured_arguments.named_key_arguments[1].key == 'key2'
    assert structured_arguments.named_key_arguments[1].value == 'key2_arg'
Example #7
0
def test_structure_double_single_fails():
    with pytest.raises(StructuredArgumentsError):
        structure_flags(['foo', 'bar'])

    with pytest.raises(StructuredArgumentsError):
        structure_flags(['foo', 'bar=ad'])

    with pytest.raises(StructuredArgumentsError):
        structure_flags(['foo', 'bar.baz=ad'])
Example #8
0
def test_structure_flag_empty():
    assert structure_flags([]) is None