add 'operator' to requirement
This commit is contained in:
@ -431,6 +431,122 @@ def test_requires_multi_disabled():
|
||||
assert props == ['disabled']
|
||||
|
||||
|
||||
def test_requires_multi_disabled_new_format():
|
||||
a = BoolOption('activate_service', '')
|
||||
b = IntOption('num_service', '')
|
||||
c = IPOption('ip_address_service', '',
|
||||
requires=[{'expected': [{'option': a, 'value': True}, {'option': b, 'value': 1}], 'action': 'disabled'}])
|
||||
od = OptionDescription('service', '', [a, b, c])
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
|
||||
c.ip_address_service
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['disabled']
|
||||
|
||||
c.activate_service = False
|
||||
c.ip_address_service
|
||||
|
||||
c.num_service = 1
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['disabled']
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['disabled']
|
||||
|
||||
|
||||
def test_requires_multi_disabled_new_format_and():
|
||||
a = BoolOption('activate_service', '')
|
||||
b = IntOption('num_service', '')
|
||||
c = IPOption('ip_address_service', '',
|
||||
requires=[{'expected': [{'option': a, 'value': True}, {'option': b, 'value': 1}], 'action': 'disabled', 'operator': 'and'}])
|
||||
od = OptionDescription('service', '', [a, b, c])
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
|
||||
c.ip_address_service
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == []
|
||||
|
||||
c.activate_service = False
|
||||
c.ip_address_service
|
||||
|
||||
c.num_service = 1
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == []
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['disabled']
|
||||
|
||||
|
||||
def test_requires_multi_disabled_new_format_and_2():
|
||||
a = BoolOption('activate_service', '')
|
||||
b = IntOption('num_service', '')
|
||||
c = IPOption('ip_address_service', '',
|
||||
requires=[{'expected': [{'option': a, 'value': True}, {'option': b, 'value': 1}], 'action': 'disabled', 'operator': 'and'},
|
||||
{'expected': [{'option': a, 'value': False}, {'option': b, 'value': 1}], 'action': 'expert'}])
|
||||
od = OptionDescription('service', '', [a, b, c])
|
||||
c = Config(od)
|
||||
c.cfgimpl_get_settings().append('expert')
|
||||
c.read_write()
|
||||
c.ip_address_service
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == []
|
||||
|
||||
c.activate_service = False
|
||||
c.num_service = 1
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['expert']
|
||||
|
||||
c.activate_service = True
|
||||
props = []
|
||||
try:
|
||||
c.ip_address_service
|
||||
except PropertiesOptionError as err:
|
||||
props = err.proptype
|
||||
assert props == ['disabled', 'expert']
|
||||
|
||||
|
||||
def test_requires_multi_disabled_inverse():
|
||||
a = BoolOption('activate_service', '')
|
||||
b = IntOption('num_service', '')
|
||||
|
@ -78,8 +78,10 @@ def _diff_opt(opt1, opt2):
|
||||
if val1 == val2 == []:
|
||||
pass
|
||||
else:
|
||||
assert val1[0][0][0]._name == val2[0][0][0]._name
|
||||
assert val1[0][0][1:] == val2[0][0][1:]
|
||||
for idx, req in enumerate(val1[0][0][0]):
|
||||
assert val1[0][0][0][idx][0]._name == val2[0][0][0][idx][0]._name
|
||||
assert val1[0][0][0][idx][1] == val2[0][0][0][idx][1]
|
||||
assert val1[0][0][1:] == val2[0][0][1:]
|
||||
elif attr == '_opt':
|
||||
assert val1._name == val2._name
|
||||
elif attr == '_consistencies':
|
||||
|
Reference in New Issue
Block a user