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')
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"
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"
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)
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"
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')
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')