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
2 changed files with 12 additions and 1 deletions
|
@ -367,3 +367,14 @@ def test_reset_multiple():
|
|||
setting[option].append('test')
|
||||
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:
|
||||
ntime = int(time())
|
||||
ntime = ntime + expires_time
|
||||
self._p_.setcache(path, props, ntime)
|
||||
self._p_.setcache(path, copy(props), ntime)
|
||||
return props
|
||||
|
||||
def append(self, propname):
|
||||
|
|
Loading…
Reference in a new issue