mandatory_warnings => mandatory
This commit is contained in:
parent
5bb788b5b7
commit
f04169d5a6
5 changed files with 56 additions and 39 deletions
|
@ -284,7 +284,7 @@ def test_mandatory_dyndescription():
|
|||
api.option('od.dodval1.stval1').value.reset()
|
||||
api.property.read_only()
|
||||
raises(PropertiesOptionError, "api.option('od.dodval1.stval1').value.get()")
|
||||
assert list(api.value.mandatory_warnings()) == ['od.dodval1.stval1', 'od.dodval2.stval2']
|
||||
assert list(api.value.mandatory()) == ['od.dodval1.stval1', 'od.dodval2.stval2']
|
||||
|
||||
|
||||
def test_build_dyndescription_context():
|
||||
|
@ -446,7 +446,7 @@ def test_mandatory_dyndescription_context():
|
|||
api.option('od.dodval1.stval1').value.reset()
|
||||
api.property.read_only()
|
||||
raises(PropertiesOptionError, "api.option('od.dodval1.stval1').value.get()")
|
||||
assert list(api.value.mandatory_warnings()) == ['od.dodval1.stval1', 'od.dodval2.stval2']
|
||||
assert list(api.value.mandatory()) == ['od.dodval1.stval1', 'od.dodval2.stval2']
|
||||
|
||||
|
||||
def test_increase_dyndescription_context():
|
||||
|
|
|
@ -329,11 +329,11 @@ def test_mandatory_warnings_ro():
|
|||
except PropertiesOptionError as err:
|
||||
prop = err.proptype
|
||||
assert 'mandatory' in prop
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'unicode2', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'unicode2', 'str3']
|
||||
api.property.read_write()
|
||||
api.option('str').value.set('a')
|
||||
api.property.read_only()
|
||||
assert list(api.value.mandatory_warnings()) == ['str1', 'unicode2', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str1', 'unicode2', 'str3']
|
||||
|
||||
|
||||
def test_mandatory_warnings_rw():
|
||||
|
@ -342,9 +342,9 @@ def test_mandatory_warnings_rw():
|
|||
api.option('str').value.set('')
|
||||
api.property.read_write()
|
||||
api.option('str').value.get()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'unicode2', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'unicode2', 'str3']
|
||||
api.option('str').value.set('a')
|
||||
assert list(api.value.mandatory_warnings()) == ['str1', 'unicode2', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str1', 'unicode2', 'str3']
|
||||
|
||||
|
||||
def test_mandatory_warnings_disabled():
|
||||
|
@ -353,9 +353,9 @@ def test_mandatory_warnings_disabled():
|
|||
api.option('str').value.set('')
|
||||
api.property.read_write()
|
||||
api.option('str').value.get()
|
||||
assert set(api.value.mandatory_warnings()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
api.option('str').property.add('disabled')
|
||||
assert set(api.value.mandatory_warnings()) == {'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str1', 'unicode2', 'str3'}
|
||||
|
||||
|
||||
def test_mandatory_warnings_hidden():
|
||||
|
@ -365,9 +365,9 @@ def test_mandatory_warnings_hidden():
|
|||
api.property.read_write()
|
||||
api.permissive.set(frozenset(['hidden']))
|
||||
api.option('str').value.get()
|
||||
assert set(api.value.mandatory_warnings()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
api.option('str').property.add('hidden')
|
||||
assert set(api.value.mandatory_warnings()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
|
||||
|
||||
def test_mandatory_warnings_frozen():
|
||||
|
@ -376,10 +376,10 @@ def test_mandatory_warnings_frozen():
|
|||
api.option('str').value.set('')
|
||||
api.property.read_write()
|
||||
api.option('str').value.get()
|
||||
assert set(api.value.mandatory_warnings()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
api.option('str').property.add('frozen')
|
||||
api.property.read_only()
|
||||
assert set(api.value.mandatory_warnings()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
assert set(api.value.mandatory()) == {'str', 'str1', 'unicode2', 'str3'}
|
||||
|
||||
|
||||
def test_mandatory_master():
|
||||
|
@ -404,7 +404,7 @@ def test_mandatory_warnings_master():
|
|||
#interface1.impl_set_group_type(groups.master)
|
||||
descr = OptionDescription('o', '', [interface1])
|
||||
api = Config(descr)
|
||||
assert list(api.value.mandatory_warnings()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
assert list(api.value.mandatory()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
|
||||
|
||||
def test_mandatory_master_empty():
|
||||
|
@ -462,17 +462,17 @@ def test_mandatory_warnings_master_empty():
|
|||
api.option('ip_admin_eth0.ip_admin_eth0').value.set([undefined])
|
||||
assert api.option('ip_admin_eth0.ip_admin_eth0').value.get() == [None]
|
||||
assert api.option('ip_admin_eth0.netmask_admin_eth0', 0).value.get() == None
|
||||
assert list(api.value.mandatory_warnings()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
assert list(api.value.mandatory()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
api.option('ip_admin_eth0.ip_admin_eth0').value.reset()
|
||||
#
|
||||
api.option('ip_admin_eth0.ip_admin_eth0').value.set([''])
|
||||
assert api.option('ip_admin_eth0.ip_admin_eth0').value.get() == ['']
|
||||
assert api.option('ip_admin_eth0.netmask_admin_eth0', 0).value.get() == None
|
||||
assert list(api.value.mandatory_warnings()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
assert list(api.value.mandatory()) == ['ip_admin_eth0.ip_admin_eth0']
|
||||
#
|
||||
api.property.read_write()
|
||||
api.option('ip_admin_eth0.ip_admin_eth0').value.set(['ip'])
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
|
||||
|
||||
def test_mandatory_slave():
|
||||
|
@ -517,9 +517,9 @@ def test_mandatory_warnings_slave():
|
|||
assert api.option('ip_admin_eth0.ip_admin_eth0').value.get() == []
|
||||
#
|
||||
api.property.read_write()
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
api.option('ip_admin_eth0.ip_admin_eth0').value.set(['ip'])
|
||||
assert list(api.value.mandatory_warnings()) == ['ip_admin_eth0.netmask_admin_eth0']
|
||||
assert list(api.value.mandatory()) == ['ip_admin_eth0.netmask_admin_eth0']
|
||||
|
||||
|
||||
def test_mandatory_warnings_symlink():
|
||||
|
@ -528,19 +528,19 @@ def test_mandatory_warnings_symlink():
|
|||
api.option('str').value.set('')
|
||||
api.property.read_write()
|
||||
api.option('str').value.get()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'str3']
|
||||
api.option('str').property.add('frozen')
|
||||
api.property.read_only()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'str3']
|
||||
|
||||
|
||||
#def test_mandatory_warnings_validate():
|
||||
# descr = make_description3()
|
||||
# api = Config(descr)
|
||||
# api.option('str').value.set('')
|
||||
# raises(ValueError, "list(api.value.mandatory_warnings())")
|
||||
# raises(ValueError, "list(api.value.mandatory())")
|
||||
# api.option('str').value.set('test')
|
||||
# raises(ValueError, "list(api.value.mandatory_warnings())")
|
||||
# raises(ValueError, "list(api.value.mandatory())")
|
||||
|
||||
|
||||
def test_mandatory_warnings_validate_empty():
|
||||
|
@ -548,7 +548,7 @@ def test_mandatory_warnings_validate_empty():
|
|||
api = Config(descr)
|
||||
api.option('str').value.set('')
|
||||
api.property.read_only()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'str3', 'unicode1']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'str3', 'unicode1']
|
||||
|
||||
|
||||
def test_mandatory_warnings_requires():
|
||||
|
@ -564,12 +564,12 @@ def test_mandatory_warnings_requires():
|
|||
api.option('str').value.set('')
|
||||
api.property.read_write()
|
||||
api.option('str').value.get()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'unicode2']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'unicode2']
|
||||
api.property.read_only()
|
||||
assert list(api.value.mandatory_warnings()) == ['str', 'str1', 'unicode2']
|
||||
assert list(api.value.mandatory()) == ['str', 'str1', 'unicode2']
|
||||
api.property.read_write()
|
||||
api.option('str').value.set('yes')
|
||||
assert list(api.value.mandatory_warnings()) == ['str1', 'unicode2', 'str3']
|
||||
assert list(api.value.mandatory()) == ['str1', 'unicode2', 'str3']
|
||||
|
||||
|
||||
def test_mandatory_warnings_requires_masterslaves():
|
||||
|
@ -582,9 +582,9 @@ def test_mandatory_warnings_requires_masterslaves():
|
|||
api = Config(descr)
|
||||
api.option('str').value.set('')
|
||||
api.option('master.str1').value.set(['str'])
|
||||
assert list(api.value.mandatory_warnings()) == ['str']
|
||||
assert list(api.value.mandatory()) == ['str']
|
||||
api.option('str').value.set('yes')
|
||||
assert list(api.value.mandatory_warnings()) == ['master.str2']
|
||||
assert list(api.value.mandatory()) == ['master.str2']
|
||||
|
||||
|
||||
def test_mandatory_warnings_requires_masterslaves_slave():
|
||||
|
@ -595,9 +595,9 @@ def test_mandatory_warnings_requires_masterslaves_slave():
|
|||
descr = OptionDescription('tiram', '', [masterslave])
|
||||
api = Config(descr)
|
||||
api.option('master.str').value.set(['str'])
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
api.option('master.str1', 0).value.set('yes')
|
||||
assert list(api.value.mandatory_warnings()) == ['master.str2']
|
||||
assert list(api.value.mandatory()) == ['master.str2']
|
||||
|
||||
|
||||
def test_mandatory_od_disabled():
|
||||
|
@ -605,6 +605,6 @@ def test_mandatory_od_disabled():
|
|||
descr = OptionDescription('od', '', [descr])
|
||||
api = Config(descr)
|
||||
api.property.read_only()
|
||||
assert list(api.value.mandatory_warnings()) == ['tiram.str1', 'tiram.unicode2', 'tiram.str3']
|
||||
assert list(api.value.mandatory()) == ['tiram.str1', 'tiram.unicode2', 'tiram.str3']
|
||||
api.option('tiram').property.add('disabled')
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
|
|
|
@ -670,7 +670,7 @@ def test_callback_master_and_slaves_master3():
|
|||
maconfig = OptionDescription('rootconfig', '', [interface1])
|
||||
api = Config(maconfig)
|
||||
api.property.read_write()
|
||||
assert list(api.value.mandatory_warnings()) == ['val1.val1']
|
||||
assert list(api.value.mandatory()) == ['val1.val1']
|
||||
|
||||
|
||||
def test_callback_master_and_slaves_master4():
|
||||
|
@ -685,7 +685,7 @@ def test_callback_master_and_slaves_master4():
|
|||
api.property.read_write()
|
||||
api.property.add('expert')
|
||||
api.permissive.set(frozenset(['expert']))
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
|
||||
|
||||
def test_consistency_master_and_slaves_master_mandatory_transitive():
|
||||
|
@ -709,7 +709,7 @@ def test_consistency_master_and_slaves_master_mandatory_transitive():
|
|||
else:
|
||||
raise Exception('must raises')
|
||||
raises(PropertiesOptionError, "api.option('val3.val3').value.get()")
|
||||
assert list(api.value.mandatory_warnings()) == []
|
||||
assert list(api.value.mandatory()) == []
|
||||
|
||||
|
||||
def test_consistency_master_and_slaves_master_mandatory_non_transitive():
|
||||
|
@ -729,9 +729,9 @@ def test_consistency_master_and_slaves_master_mandatory_non_transitive():
|
|||
api = Config(maconfig)
|
||||
api.property.read_write()
|
||||
if TIRAMISU_VERSION == 2:
|
||||
assert list(api.value.mandatory_warnings()) == ["val1.val1", "val1.val2"]
|
||||
assert list(api.value.mandatory()) == ["val1.val1", "val1.val2"]
|
||||
else:
|
||||
assert list(api.value.mandatory_warnings()) == ["val1.val1"]
|
||||
assert list(api.value.mandatory()) == ["val1.val1"]
|
||||
|
||||
|
||||
def test_callback_master_and_slaves_master_list():
|
||||
|
|
|
@ -736,7 +736,7 @@ def test_consistency_broadcast_warnings():
|
|||
assert len(w) == 1
|
||||
api.property.read_write()
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
list(api.value.mandatory_warnings())
|
||||
list(api.value.mandatory())
|
||||
assert len(w) == 0
|
||||
|
||||
|
||||
|
|
|
@ -433,6 +433,23 @@ class _TiramisuOptionValueOption:
|
|||
self._test_slave_index()
|
||||
self._subconfig.delattr(self._option_bag)
|
||||
|
||||
def default(self):
|
||||
"""Get default value (default of option or calculated value)"""
|
||||
option = self._option_bag.option
|
||||
values = self._option_bag.config_bag.context.cfgimpl_get_values()
|
||||
if option.impl_is_master_slaves('slave') and self._option_bag.index is None:
|
||||
value = []
|
||||
length = self._subconfig.cfgimpl_get_length_slave(self._option_bag)
|
||||
for idx in range(length):
|
||||
soption_bag = OptionBag()
|
||||
soption_bag.set_option(option,
|
||||
self._option_bag.path,
|
||||
idx,
|
||||
self._option_bag.config_bag)
|
||||
value.append(values.getdefaultvalue(soption_bag))
|
||||
else:
|
||||
return values.getdefaultvalue(self._option_bag)
|
||||
|
||||
|
||||
class _TiramisuOptionValueMaster:
|
||||
def pop(self, index):
|
||||
|
@ -755,7 +772,7 @@ class TiramisuContextInformation(TiramisuContext):
|
|||
|
||||
class TiramisuContextValue(TiramisuContext):
|
||||
"""Manage config value"""
|
||||
def mandatory_warnings(self):
|
||||
def mandatory(self):
|
||||
"""Return path of options with mandatory property without any value"""
|
||||
return self._config_bag.context.cfgimpl_get_values().mandatory_warnings(self._config_bag)
|
||||
|
||||
|
|
Loading…
Reference in a new issue