key is now always path and change opt by path dictionary storage

This commit is contained in:
2013-08-21 22:21:50 +02:00
parent 707a215a2c
commit b6bb685ca5
12 changed files with 297 additions and 242 deletions

View File

@ -20,13 +20,13 @@ def test_cache():
values = c.cfgimpl_get_values()
settings = c.cfgimpl_get_settings()
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u2
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert od1.u2 in values._p_.get_cached('value', c)
assert od1.u2 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
assert 'u2' in values._p_.get_cached('value', c)
assert 'u2' in settings._p_.get_cached('property', c)
def test_cache_reset():
@ -36,44 +36,44 @@ def test_cache_reset():
settings = c.cfgimpl_get_settings()
#when change a value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u2 = 1
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when remove a value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
del(c.u2)
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when add/del property
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_get_settings()[od1.u2].append('test')
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_get_settings()[od1.u2].remove('test')
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when enable/disabled property
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_get_settings().append('test')
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_get_settings().remove('test')
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
def test_cache_reset_multi():
@ -83,32 +83,32 @@ def test_cache_reset_multi():
settings = c.cfgimpl_get_settings()
#when change a value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u3 = [1]
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when append value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u3.append(1)
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when pop value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u3.pop(1)
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
#when remove a value
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
del(c.u3)
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
def test_reset_cache():
@ -117,23 +117,23 @@ def test_reset_cache():
values = c.cfgimpl_get_values()
settings = c.cfgimpl_get_settings()
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache()
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
c.u1
sleep(1)
c.u2
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert od1.u2 in values._p_.get_cached('value', c)
assert od1.u2 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
assert 'u2' in values._p_.get_cached('value', c)
assert 'u2' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache()
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert od1.u2 not in values._p_.get_cached('value', c)
assert od1.u2 not in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
assert 'u2' not in values._p_.get_cached('value', c)
assert 'u2' not in settings._p_.get_cached('property', c)
def test_reset_cache_only_expired():
@ -142,22 +142,22 @@ def test_reset_cache_only_expired():
values = c.cfgimpl_get_values()
settings = c.cfgimpl_get_settings()
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache(True)
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
sleep(1)
c.u2
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert od1.u2 in values._p_.get_cached('value', c)
assert od1.u2 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
assert 'u2' in values._p_.get_cached('value', c)
assert 'u2' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache(True)
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert od1.u2 in values._p_.get_cached('value', c)
assert od1.u2 in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)
assert 'u2' in values._p_.get_cached('value', c)
assert 'u2' in settings._p_.get_cached('property', c)
def test_reset_cache_only():
@ -166,14 +166,14 @@ def test_reset_cache_only():
values = c.cfgimpl_get_values()
settings = c.cfgimpl_get_settings()
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache(only=('values',))
assert od1.u1 not in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' not in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.u1
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' in settings._p_.get_cached('property', c)
c.cfgimpl_reset_cache(only=('settings',))
assert od1.u1 in values._p_.get_cached('value', c)
assert od1.u1 not in settings._p_.get_cached('property', c)
assert 'u1' in values._p_.get_cached('value', c)
assert 'u1' not in settings._p_.get_cached('property', c)

View File

@ -39,6 +39,22 @@ def test_base_config():
assert dm._name == 'dummy'
def test_base_path():
gcdummy = BoolOption('dummy', 'dummy', default=False)
descr = OptionDescription('tiramisu', '', [gcdummy])
cfg = Config(descr)
assert cfg._impl_path is None
base = OptionDescription('config', '', [descr])
cfg = Config(base)
assert cfg._impl_path is None
assert cfg.tiramisu._impl_path == 'tiramisu'
nbase = OptionDescription('baseconfig', '', [base])
cfg = Config(nbase)
assert cfg._impl_path is None
assert cfg.config._impl_path == 'config'
assert cfg.config.tiramisu._impl_path == 'config.tiramisu'
def test_reset_value():
descr = make_description()
cfg = Config(descr)

View File

@ -164,3 +164,9 @@ def test_not_meta():
meta.set_contexts('od1.i1', 7)
assert conf1.od1.i1 == conf2.od1.i1 == 7
assert conf1.getowner('od1.i1') is conf2.getowner('od1.i1') is owners.user
def test_meta_path():
meta = make_description()
assert meta._impl_path is None
assert meta.od1._impl_path == 'od1'

View File

@ -494,7 +494,7 @@ def test_callback_hidden():
od2 = OptionDescription('od2', '', [opt2])
maconfig = OptionDescription('rootconfig', '', [od1, od2])
cfg = Config(maconfig)
cfg.cfgimpl_get_settings().set_permissive(('hidden',))
cfg.cfgimpl_get_settings().setpermissive(('hidden',))
cfg.read_write()
raises(PropertiesOptionError, 'cfg.od1.opt1')
cfg.od2.opt2

View File

@ -333,15 +333,15 @@ def test_reset_properties():
setting.reset()
assert setting._p_.get_properties(cfg) == {}
setting[option].append('test')
assert setting._p_.get_properties(cfg) == {option: set(('test',))}
assert setting._p_.get_properties(cfg) == {'gc.dummy': set(('test',))}
setting.reset()
assert setting._p_.get_properties(cfg) == {option: set(('test',))}
assert setting._p_.get_properties(cfg) == {'gc.dummy': set(('test',))}
setting.append('frozen')
assert setting._p_.get_properties(cfg) == {None: set(('frozen', 'expire', 'validator')), option: set(('test',))}
assert setting._p_.get_properties(cfg) == {None: set(('frozen', 'expire', 'validator')), 'gc.dummy': set(('test',))}
setting.reset(option)
assert setting._p_.get_properties(cfg) == {None: set(('frozen', 'expire', 'validator'))}
setting[option].append('test')
assert setting._p_.get_properties(cfg) == {None: set(('frozen', 'expire', 'validator')), option: set(('test',))}
assert setting._p_.get_properties(cfg) == {None: set(('frozen', 'expire', 'validator')), 'gc.dummy': set(('test',))}
setting.reset(all_properties=True)
assert setting._p_.get_properties(cfg) == {}
raises(ValueError, 'setting.reset(all_properties=True, opt=option)')

View File

@ -21,7 +21,7 @@ def test_permissive():
except PropertiesOptionError, err:
props = err.proptype
assert props == ['disabled']
setting.set_permissive(('disabled',))
setting.setpermissive(('disabled',))
props = []
try:
config.u1
@ -50,7 +50,7 @@ def test_permissive_mandatory():
except PropertiesOptionError, err:
props = err.proptype
assert props == ['disabled', 'mandatory']
setting.set_permissive(('mandatory', 'disabled',))
setting.setpermissive(('mandatory', 'disabled',))
setting.append('permissive')
config.u1
setting.remove('permissive')
@ -66,7 +66,7 @@ def test_permissive_frozen():
config = Config(descr)
setting = config.cfgimpl_get_settings()
config.read_write()
setting.set_permissive(('frozen', 'disabled',))
setting.setpermissive(('frozen', 'disabled',))
try:
config.u1 = 1
except PropertiesOptionError, err: