Beispiel #1
0
def test_ArgumentStore_split_merge():
    d = dict(min_len=1, max_len=5, default=[5, 6, 7], item_min=3, item_max=18)
    argument_store = ArgumentStore(d)
    sub_argument_store = argument_store.split(prefix='item_')
    l = list(sub_argument_store.items())
    l.sort(key=lambda x: x[0])
    assert l[0][0] == 'max'
    assert l[0][1] == 18
    assert l[1][0] == 'min'
    assert l[1][1] == 3
    assert sub_argument_store.get('min') == 3
    assert argument_store.get('max_len') == 5
    argument_store.merge(sub_argument_store, prefix='item_')
    assert argument_store.get('default') == [5, 6, 7]
    assert argument_store.get_used('item_min')
    assert not argument_store.get_used('item_max')
    assert not argument_store.get_used('min_len')
    assert argument_store.get_used('max_len')
    assert argument_store.get_used('default')
Beispiel #2
0
def test_Composer_partial(composer):
    arguments = dict(x=11,
                     xy=(13, 14),
                     xx=23,
                     zz=45,
                     yy=24,
                     a=100,
                     b=200,
                     c=300)
    argument_store = ArgumentStore(arguments)
    actual_arguments, objects = composer.partial(argument_store)
    _check_actual_arguments(actual_arguments)
    _check_objects(objects)
    with pytest.raises(TypeError) as exc_info:
        composer.verify_argument_store(argument_store)
    assert str(exc_info.value) == "unexpected arguments: zz=45"
Beispiel #3
0
def test_Composer_sub_missing(composer):
    arguments = dict(x=11,
                     xy=(13, 14),
                     xx=23,
                     yy=24,
                     a=100,
                     b=200,
                     c=300,
                     sub_a=111,
                     sub_c=333)
    argument_store = ArgumentStore(arguments)
    actual_arguments, objects = composer.partial(argument_store)
    _check_objects(objects)
    sub_composer = Composer(fab, fbc)
    with pytest.raises(TypeError) as exc_info:
        sub_actual_arguments, sub_objects = sub_composer.partial(
            argument_store, prefix='sub_')
    assert str(exc_info.value) == "fab: missing required argument b"
Beispiel #4
0
def test_Composer_sub(composer):
    arguments = dict(x=11,
                     xy=(13, 14),
                     xx=23,
                     yy=24,
                     a=100,
                     b=200,
                     c=300,
                     sub_a=111,
                     sub_b=222,
                     sub_c=333)
    argument_store = ArgumentStore(arguments)
    actual_arguments, objects = composer.partial(argument_store)
    _check_objects(objects)
    sub_composer = Composer(fab, fbc)
    sub_actual_arguments, sub_objects = sub_composer.partial(argument_store,
                                                             prefix='sub_')
    assert sub_objects[0] == [111, 222]
    assert sub_objects[1] == [222, 333]
    composer.verify_argument_store(argument_store)
Beispiel #5
0
def test_Composer_sub_unexpected(composer):
    arguments = dict(x=11,
                     xy=(13, 14),
                     xx=23,
                     yy=24,
                     zz=45,
                     a=100,
                     b=200,
                     c=300,
                     sub_a=111,
                     sub_b=222,
                     sub_c=333,
                     sub_d=444)
    argument_store = ArgumentStore(arguments)
    actual_arguments, objects = composer.partial(argument_store)
    _check_objects(objects)
    sub_composer = Composer(fab, fbc)
    sub_actual_arguments, sub_objects = sub_composer.partial(argument_store,
                                                             prefix='sub_')
    assert sub_objects[0] == [111, 222]
    assert sub_objects[1] == [222, 333]
    with pytest.raises(TypeError) as exc_info:
        composer.verify_argument_store(argument_store)
    assert str(exc_info.value) == "unexpected arguments: sub_d=444, zz=45"
Beispiel #6
0
def test_ArgumentStore_split_merge():
    d = dict(min_len=1, max_len=5, default=[5, 6, 7], item_min=3, item_max=18)
    argument_store = ArgumentStore(d)
    sub_argument_store = argument_store.split(prefix='item_')
    l = list(sub_argument_store.items())
    l.sort(key=lambda x: x[0])
    assert l[0][0] == 'max'
    assert l[0][1] == 18
    assert l[1][0] == 'min'
    assert l[1][1] == 3
    assert sub_argument_store.get('min') == 3
    assert argument_store.get('max_len') == 5
    argument_store.merge(sub_argument_store, prefix='item_')
    assert argument_store.get('default') == [5, 6, 7]
    assert argument_store.get_used('item_min')
    assert not argument_store.get_used('item_max')
    assert not argument_store.get_used('min_len')
    assert argument_store.get_used('max_len')
    assert argument_store.get_used('default')
Beispiel #7
0
def test_ArgumentStore_set_used():
    argument_store = ArgumentStore({'x': 10})
    assert not argument_store.get_used('x')
    argument_store.set_used('x')
    assert argument_store.get_used('x')
Beispiel #8
0
def test_ArgumentStore_get_used():
    argument_store = ArgumentStore({'x': 10})
    assert tuple(argument_store)
    assert not argument_store.get_used('x')
    assert argument_store.get('x') == 10
    assert argument_store.get_used('x')