- can reset directly custom settings for an option: setting[option].reset()

- option properties are now tuple in internal, and change it to set when needed (that coping data)
This commit is contained in:
2013-07-13 10:42:10 +02:00
parent a95f19d5f4
commit de44daafeb
3 changed files with 78 additions and 14 deletions

View File

@ -308,3 +308,59 @@ def test_access_by_get_whith_hide():
c = Config(descr)
c.read_write()
raises(AttributeError, "c.find(byname='b1')")
def test_append_properties():
descr = make_description()
cfg = Config(descr)
setting = cfg.cfgimpl_get_settings()
option = cfg.cfgimpl_get_description().gc.dummy
assert option._properties == tuple()
assert not 'test' in setting[option]
setting[option].append('test')
assert option._properties == tuple()
assert 'test' in setting[option]
def test_reset_properties():
descr = make_description()
cfg = Config(descr)
setting = cfg.cfgimpl_get_settings()
option = cfg.cfgimpl_get_description().gc.dummy
assert setting._properties == {}
setting.append('frozen')
assert setting._properties == {None: set(('frozen', 'expire', 'validator'))}
setting.reset()
assert setting._properties == {}
setting[option].append('test')
assert setting._properties == {option: set(('test',))}
setting.reset()
assert setting._properties == {option: set(('test',))}
setting.append('frozen')
assert setting._properties == {None: set(('frozen', 'expire', 'validator')), option: set(('test',))}
setting.reset(option)
assert setting._properties == {None: set(('frozen', 'expire', 'validator'))}
setting[option].append('test')
assert setting._properties == {None: set(('frozen', 'expire', 'validator')), option: set(('test',))}
setting.reset(all_properties=True)
assert setting._properties == {}
raises(ValueError, 'setting.reset(all_properties=True, opt=option)')
def test_reset_multiple():
descr = make_description()
cfg = Config(descr)
setting = cfg.cfgimpl_get_settings()
option = cfg.cfgimpl_get_description().gc.dummy
setting.append('frozen')
setting[option].append('test')
setting.reset()
setting.reset()
setting.append('frozen')
setting[option].append('test')
setting.reset(option)
setting.reset(option)
setting.append('frozen')
setting[option].append('test')
setting.reset(all_properties=True)
setting.reset(all_properties=True)