add test for properties

This commit is contained in:
Emmanuel Garette 2018-04-11 08:40:59 +02:00
parent a1bb6370ca
commit 51d420b29d
4 changed files with 24 additions and 8 deletions

View File

@ -392,7 +392,20 @@ def test_requires_transitive_hidden_disabled_multiple():
except PropertiesOptionError as err:
props = err.proptype
assert set(props) == {'disabled', 'hidden'}
raises(RequirementError, "api.option('ip_address_service_web').value.get()")
req = None
try:
api.option('ip_address_service_web').value.get()
except RequirementError as err:
req = err
assert req, "ip_address_service_web should raise RequirementError"
assert str(req) == str(_('cannot access to option "{}" because required option "{}" has {} {}').format('ip_address_service_web', 'activate_service_web', 'property', '"disabled"'))
api.permissive.set(frozenset())
try:
api.option('ip_address_service_web').value.get()
except RequirementError as err:
req = err
assert req, "ip_address_service_web should raise RequirementError"
assert str(req) == str(_('cannot access to option "{}" because required option "{}" has {} {}').format('ip_address_service_web', 'activate_service_web', 'properties', '"disabled" and "hidden"'))
def test_requires_not_transitive():

View File

@ -871,7 +871,7 @@ class TiramisuContextPermissive(TiramisuContext):
@count
def get(self):
"""get configuration permissives"""
self.config_bag.config.cfgimpl_get_settings().get_context_permissive(permissives)
return self.config_bag.config.cfgimpl_get_settings().get_context_permissive()
@count
def set(self, permissives):
@ -886,7 +886,7 @@ class TiramisuContextPermissive(TiramisuContext):
@count
def importation(self, permissives):
"""import configuration permissives"""
return self.config_bag.config.cfgimpl_get_settings()._pp_.importation(permissives)
self.config_bag.config.cfgimpl_get_settings()._pp_.importation(permissives)

View File

@ -96,7 +96,8 @@ class PropertiesOptionError(AttributeError):
self._requires,
self._index,
True,
self._config_bag)
self._config_bag,
self._name)
#if req != {} or self._orig_opt is not None:
if req != {}:
only_one = len(req) == 1

View File

@ -376,7 +376,8 @@ class Settings(object):
opt.impl_getrequires(),
index,
False,
config_bag)
config_bag,
opt.impl_get_display_name())
props -= self.getpermissive(opt,
path)
if apply_requires and config_bag.setting_properties is not None and \
@ -410,7 +411,7 @@ class Settings(object):
index,
readable,
config_bag,
name=None):
name):
"""carries out the jit (just in time) requirements between options
a requirement is a tuple of this form that comes from the option's
@ -514,7 +515,7 @@ class Settings(object):
'').format(name,
option.impl_get_display_name(),
prop_msg,
display_list(list(properties))))
display_list(list(properties), add_quote=True)))
# transitive action, add action
if operator != 'and':
if readable:
@ -522,7 +523,8 @@ class Settings(object):
err._requires,
err._index,
True,
err._config_bag).values():
err._config_bag,
err._name).values():
calc_properties.setdefault(action, []).extend(msg)
else:
calc_properties.add(action)