assert cfg.getowner(ch) == owners.default
raises(ValueError, "cfg.ch='no'")
assert cfg.getowner(ch) == owners.default
+ assert ch.impl_get_values(None) == []
+ assert ch.impl_get_values(cfg) == ['val1', 'val2']
def test_choiceoption_calc_function():
return DynSymLinkOption(name, self, dyn=path)
def _validate_callback(self, callback, callback_params):
+ """callback_params:
+ * None
+ * {'': ((option, permissive),), 'ip': ((None,), (option, permissive))
+ """
if callback is None:
return
default_multi = self.impl_getdefault_multi()
#FIXME cache? but in context...
values = self._choice_values
if isinstance(values, FunctionType):
- values_params = self._choice_values_params
- if values_params is None:
- values_params = {}
- values = carry_out_calculation(self, context=context,
- callback=values,
- callback_params=values_params)
- if not isinstance(values, list): # pragma: optional cover
- raise ConfigError(_('calculated values for {0} is not a list'
- '').format(self.impl_getname()))
+ if context is None:
+ values = []
+ else:
+ values_params = self._choice_values_params
+ if values_params is None:
+ values_params = {}
+ values = carry_out_calculation(self, context=context,
+ callback=values,
+ callback_params=values_params)
+ if not isinstance(values, list): # pragma: optional cover
+ raise ConfigError(_('calculated values for {0} is not a list'
+ '').format(self.impl_getname()))
return values
def _validate(self, value, context=undefined):