tiramisu/setting.py : properties store in cache was a reference to a list modified in validation, should copy properties in cache
This commit is contained in:
parent
8d751ecc9b
commit
bf0501b1d6
|
@ -367,3 +367,14 @@ def test_reset_multiple():
|
||||||
setting[option].append('test')
|
setting[option].append('test')
|
||||||
setting.reset(all_properties=True)
|
setting.reset(all_properties=True)
|
||||||
setting.reset(all_properties=True)
|
setting.reset(all_properties=True)
|
||||||
|
|
||||||
|
|
||||||
|
def test_properties_cached():
|
||||||
|
b1 = BoolOption("b1", "", properties=('test',))
|
||||||
|
descr = OptionDescription("opt", "", [OptionDescription("sub", "", [b1])])
|
||||||
|
c = Config(descr)
|
||||||
|
c.read_write()
|
||||||
|
setting = c.cfgimpl_get_settings()
|
||||||
|
option = c.cfgimpl_get_description().sub.b1
|
||||||
|
c._setattr('sub.b1', True, force_permissive=True)
|
||||||
|
assert str(setting[b1]) == "['test']"
|
||||||
|
|
|
@ -392,7 +392,7 @@ class Settings(object):
|
||||||
if ntime is None:
|
if ntime is None:
|
||||||
ntime = int(time())
|
ntime = int(time())
|
||||||
ntime = ntime + expires_time
|
ntime = ntime + expires_time
|
||||||
self._p_.setcache(path, props, ntime)
|
self._p_.setcache(path, copy(props), ntime)
|
||||||
return props
|
return props
|
||||||
|
|
||||||
def append(self, propname):
|
def append(self, propname):
|
||||||
|
|
Loading…
Reference in New Issue