add _path in reset for performance + more tests

This commit is contained in:
2013-08-24 16:30:46 +02:00
parent 5beade8b2c
commit c2b16d2605
3 changed files with 37 additions and 12 deletions

View File

@ -175,7 +175,7 @@ class Property(object):
self._setting._setproperties(self._properties, self._opt, self._path)
def reset(self):
self._setting.reset(path=self._path)
self._setting.reset(_path=self._path)
def __contains__(self, propname):
return propname in self._properties
@ -216,10 +216,7 @@ class Settings(object):
return str(list(self._getproperties()))
def __getitem__(self, opt):
if opt is None:
path = None
else:
path = self._get_opt_path(opt)
path = self._get_opt_path(opt)
return self._getitem(opt, path)
def _getitem(self, opt, path):
@ -228,18 +225,16 @@ class Settings(object):
def __setitem__(self, opt, value):
raise ValueError('you must only append/remove properties')
def reset(self, opt=None, all_properties=False):
if all_properties and opt:
def reset(self, opt=None, _path=None, all_properties=False):
if all_properties and (_path or opt):
raise ValueError(_('opt and all_properties must not be set '
'together in reset'))
if all_properties:
self._p_.reset_all_propertives()
else:
if opt is None:
path = None
else:
path = self._get_opt_path(opt)
self._p_.reset_properties(path)
if opt is not None and _path is None:
_path = self._get_opt_path(opt)
self._p_.reset_properties(_path)
self.context.cfgimpl_reset_cache()
def _getproperties(self, opt=None, path=None, is_apply_req=True):