cannot append properties for option with forbidden_set_properties

This commit is contained in:
2016-01-25 15:49:40 +01:00
parent 2842abdd46
commit f4307b9122
2 changed files with 53 additions and 6 deletions

View File

@ -263,9 +263,11 @@ class Property(object):
raise ValueError(_('cannot append {0} property for option {1}: '
'this property is calculated').format(
propname, self._opt.impl_getname()))
if propname in forbidden_set_properties:
raise ConfigError(_('cannot add those properties: {0}').format(propname))
self._properties.add(propname)
if save:
self._setting._setproperties(self._properties, self._path)
self._setting._setproperties(self._properties, self._path, force=True)
def remove(self, propname):
"""Removes a property named propname
@ -417,14 +419,17 @@ class Settings(object):
for propname in propnames:
self.append(propname)
def _setproperties(self, properties, path):
def _setproperties(self, properties, path, force=False):
"""save properties for specified path
(never save properties if same has option properties)
"""
forbidden_properties = forbidden_set_properties & properties
if forbidden_properties:
raise ConfigError(_('cannot add those properties: {0}').format(
' '.join(forbidden_properties)))
if not force:
forbidden_properties = forbidden_set_properties & properties
if forbidden_properties:
print "super ..."
raise Exception('pouet')
raise ConfigError(_('cannot add those properties: {0}').format(
' '.join(forbidden_properties)))
self._p_.setproperties(path, properties)
self._getcontext().cfgimpl_reset_cache()