def test_StoreIO_null_init_and_set_attrs_with_kwargs__works(): """ set_attrs_with_kwargs() accepts dict and updates attributes """ S = StoreIO() assert S.a is None assert S.b is None assert S.c is None assert S.d is None abcd = namedtuple('abcd', ['a', 'b', 'c', 'd']) x = abcd(1, 2, 3, 4) S.set_attrs_with_kwargs(**x._asdict()) assert isinstance(S.a, int) assert isinstance(S.b, int) assert isinstance(S.c, int) assert isinstance(S.d, int)
def test_StoreIO_set_attrs__works_with_kwargs(): """ set_attrs_with_kwargs() accepts dict and updates attributes """ ab = namedtuple('ab', ['a', 'b']) x = ab(1, 2) S = StoreIO(**x._asdict()) assert isinstance(S.a, int) assert isinstance(S.b, int) assert S.c is None assert S.d is None cd = namedtuple('cd', ['c', 'd']) y = cd(1, 2) S.set_attrs_with_kwargs(**y._asdict()) assert isinstance(S.a, int) assert isinstance(S.b, int) assert isinstance(S.c, int) assert isinstance(S.d, int)
def test_StoreIO_extra_kwargs__does_not_interfere_with_validate_attrs(): """ set_attrs_with_kwargs() accepts dict and updates attributes and can add non-valid if validate_kwargs = False """ S = StoreIO() assert S.a is None assert S.b is None assert S.c is None assert S.d is None abcde = namedtuple('e', ['a', 'b', 'c', 'd', 'e']) x = abcde(1, 2, 3, 4, 5.0) S.set_attrs_with_kwargs(**x._asdict(), validate_kwargs=False) assert S._validate_attrs() assert isinstance(S.a, int) assert isinstance(S.b, int) assert isinstance(S.c, int) assert isinstance(S.d, int) assert isinstance(S.e, float)
def test_StoreIO_set_attrs_with_extra_kwargs__validation_set_to_True(): """ set_attrs_with_kwargs() accepts dict and updates attributes and can add non-valid if validate_kwargs = False """ S = StoreIO() assert S.a is None assert S.b is None assert S.c is None assert S.d is None abcde = namedtuple('e', ['a', 'b', 'c', 'd', 'e']) x = abcde(1, 2, 3, 4, 5) S.set_attrs_with_kwargs(**x._asdict(), validate_kwargs=True) assert list(vars(S).keys()) == [ 'name', 'valid_attrs', 'valid_attrs_type', 'a', 'b', 'c', 'd' ] assert isinstance(S.a, int) assert isinstance(S.b, int) assert isinstance(S.c, int) assert isinstance(S.d, int)