add test test_symlink_getproperties and test_symlink_getcallback
This commit is contained in:
parent
85857ea781
commit
4b01eb6497
|
@ -81,6 +81,7 @@ def value_values_index2(value, values, index, auto=False):
|
||||||
value == 'val2' and values == ['val1', 'val2'] and index == 'val'):
|
value == 'val2' and values == ['val1', 'val2'] and index == 'val'):
|
||||||
raise ValueError('error')
|
raise ValueError('error')
|
||||||
|
|
||||||
|
|
||||||
def value_empty(value, empty, values):
|
def value_empty(value, empty, values):
|
||||||
if not value == 'val' or empty is not False and not values == ['val']:
|
if not value == 'val' or empty is not False and not values == ['val']:
|
||||||
raise ValueError('error')
|
raise ValueError('error')
|
||||||
|
|
|
@ -11,6 +11,10 @@ from tiramisu.setting import groups, owners
|
||||||
from py.test import raises
|
from py.test import raises
|
||||||
|
|
||||||
|
|
||||||
|
def return_value():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
#____________________________________________________________
|
#____________________________________________________________
|
||||||
def test_symlink_option():
|
def test_symlink_option():
|
||||||
boolopt = BoolOption("b", "", default=False)
|
boolopt = BoolOption("b", "", default=False)
|
||||||
|
@ -31,6 +35,26 @@ def test_symlink_option():
|
||||||
assert config.c is False
|
assert config.c is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_symlink_getproperties():
|
||||||
|
boolopt = BoolOption('b', '', default=True, properties=('test',))
|
||||||
|
linkopt = SymLinkOption("c", boolopt)
|
||||||
|
descr = OptionDescription('opt', '', [boolopt, linkopt])
|
||||||
|
config = Config(descr)
|
||||||
|
config.read_write()
|
||||||
|
assert boolopt.impl_getproperties() == linkopt.impl_getproperties() == ('test',)
|
||||||
|
assert boolopt.impl_has_callback() == linkopt.impl_has_callback() == False
|
||||||
|
|
||||||
|
|
||||||
|
def test_symlink_getcallback():
|
||||||
|
boolopt = BoolOption('b', '', callback=return_value)
|
||||||
|
linkopt = SymLinkOption("c", boolopt)
|
||||||
|
descr = OptionDescription('opt', '', [boolopt, linkopt])
|
||||||
|
config = Config(descr)
|
||||||
|
config.read_write()
|
||||||
|
assert boolopt.impl_has_callback() == linkopt.impl_has_callback() == True
|
||||||
|
assert boolopt.impl_get_callback() == linkopt.impl_get_callback() == (return_value, {})
|
||||||
|
|
||||||
|
|
||||||
def test_symlink_requires():
|
def test_symlink_requires():
|
||||||
boolopt = BoolOption('b', '', default=True)
|
boolopt = BoolOption('b', '', default=True)
|
||||||
stropt = StrOption('s', '', requires=[{'option': boolopt,
|
stropt = StrOption('s', '', requires=[{'option': boolopt,
|
||||||
|
|
|
@ -397,7 +397,7 @@ class BaseOption(Base):
|
||||||
return getattr(self, '_subdyn', None) is not None
|
return getattr(self, '_subdyn', None) is not None
|
||||||
|
|
||||||
def _impl_valid_unicode(self, value):
|
def _impl_valid_unicode(self, value):
|
||||||
if sys.version_info[0] >= 3:
|
if sys.version_info[0] >= 3: # pragma: no cover
|
||||||
if not isinstance(value, str):
|
if not isinstance(value, str):
|
||||||
return ValueError(_('invalid string'))
|
return ValueError(_('invalid string'))
|
||||||
else:
|
else:
|
||||||
|
@ -480,7 +480,7 @@ class Option(OnlyOption):
|
||||||
returns_raise=True)
|
returns_raise=True)
|
||||||
if isinstance(opt_value, Exception):
|
if isinstance(opt_value, Exception):
|
||||||
if isinstance(opt_value, PropertiesOptionError):
|
if isinstance(opt_value, PropertiesOptionError):
|
||||||
if debug:
|
if debug: # pragma: no cover
|
||||||
log.debug('propertyerror in _launch_consistency: {0}'.format(opt_value))
|
log.debug('propertyerror in _launch_consistency: {0}'.format(opt_value))
|
||||||
if transitive:
|
if transitive:
|
||||||
return opt_value
|
return opt_value
|
||||||
|
@ -508,11 +508,8 @@ class Option(OnlyOption):
|
||||||
err = getattr(self, func)(current_opt, all_cons_opts, all_cons_vals, warnings_only)
|
err = getattr(self, func)(current_opt, all_cons_opts, all_cons_vals, warnings_only)
|
||||||
if err:
|
if err:
|
||||||
if warnings_only:
|
if warnings_only:
|
||||||
if isinstance(err, ValueError):
|
msg = _('attention, "{0}" could be an invalid {1} for "{2}", {3}').format(
|
||||||
msg = _('attention, "{0}" could be an invalid {1} for "{2}", {3}').format(
|
value, self._display_name, current_opt.impl_get_display_name(), err)
|
||||||
value, self._display_name, current_opt.impl_get_display_name(), err)
|
|
||||||
else:
|
|
||||||
msg = '{}'.format(err)
|
|
||||||
warnings.warn_explicit(ValueWarning(msg, self),
|
warnings.warn_explicit(ValueWarning(msg, self),
|
||||||
ValueWarning,
|
ValueWarning,
|
||||||
self.__class__.__name__, 0)
|
self.__class__.__name__, 0)
|
||||||
|
@ -582,7 +579,7 @@ class Option(OnlyOption):
|
||||||
# option validation
|
# option validation
|
||||||
err = self._validate(_value, context, current_opt)
|
err = self._validate(_value, context, current_opt)
|
||||||
if err:
|
if err:
|
||||||
if debug:
|
if debug: # pragma: no cover
|
||||||
log.debug('do_validation: value: {0}, index: {1}, '
|
log.debug('do_validation: value: {0}, index: {1}, '
|
||||||
'submulti_index: {2}'.format(_value, _index,
|
'submulti_index: {2}'.format(_value, _index,
|
||||||
submulti_index),
|
submulti_index),
|
||||||
|
@ -604,7 +601,7 @@ class Option(OnlyOption):
|
||||||
if not error:
|
if not error:
|
||||||
error = self._second_level_validation(_value, self._is_warnings_only())
|
error = self._second_level_validation(_value, self._is_warnings_only())
|
||||||
if error:
|
if error:
|
||||||
if debug:
|
if debug: # pragma: no cover
|
||||||
log.debug(_('do_validation for {0}: error in value').format(
|
log.debug(_('do_validation for {0}: error in value').format(
|
||||||
self.impl_getname()), exc_info=True)
|
self.impl_getname()), exc_info=True)
|
||||||
if self._is_warnings_only():
|
if self._is_warnings_only():
|
||||||
|
@ -839,7 +836,7 @@ class Option(OnlyOption):
|
||||||
else:
|
else:
|
||||||
equal.add(opt_)
|
equal.add(opt_)
|
||||||
if equal:
|
if equal:
|
||||||
if debug:
|
if debug: # pragma: no cover
|
||||||
log.debug(_('_cons_not_equal: {} are not different').format(display_list(list(equal))))
|
log.debug(_('_cons_not_equal: {} are not different').format(display_list(list(equal))))
|
||||||
if is_current:
|
if is_current:
|
||||||
if warnings_only:
|
if warnings_only:
|
||||||
|
|
Loading…
Reference in New Issue