refactor validation
This commit is contained in:
@ -315,6 +315,15 @@ def return_netmask(*args, **kwargs):
|
||||
return u'255.255.255.0'
|
||||
|
||||
|
||||
def return_netmask2(master):
|
||||
if master is not None:
|
||||
if master.endswith('2.1'):
|
||||
return u'255.255.255.0'
|
||||
if not master.endswith('.0'):
|
||||
return u'255.255.255.255'
|
||||
return u'255.255.255.0'
|
||||
|
||||
|
||||
def test_consistency_network_netmask_multi_slave_callback():
|
||||
a = NetworkOption('a', '', multi=True, properties=('mandatory',))
|
||||
b = NetmaskOption('b', '', callback=return_netmask, multi=True, properties=('mandatory',))
|
||||
@ -339,6 +348,31 @@ def test_consistency_network_netmask_multi_slave_callback():
|
||||
c.a = [u'192.168.1.0', u'192.168.1.1']
|
||||
|
||||
|
||||
def test_consistency_network_netmask_multi_slave_callback_value():
|
||||
a = NetworkOption('a', '', multi=True, properties=('mandatory',))
|
||||
b = NetmaskOption('b', '', callback=return_netmask2, callback_params={'': ((a, False),)}, multi=True, properties=('mandatory',))
|
||||
od = OptionDescription('a', '', [a, b])
|
||||
od.impl_set_group_type(groups.master)
|
||||
b.impl_add_consistency('network_netmask', a)
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
c.cfgimpl_get_settings().remove('cache')
|
||||
assert c.a == []
|
||||
assert c.b == []
|
||||
c.a.append(u'192.168.1.0')
|
||||
assert c.a == [u'192.168.1.0']
|
||||
assert c.b == [u'255.255.255.0']
|
||||
raises(ValueError, "c.a[0] = u'192.168.2.1'")
|
||||
assert c.a == [u'192.168.1.0']
|
||||
assert c.b == [u'255.255.255.0']
|
||||
raises(ValueError, "c.a = [u'192.168.2.1']")
|
||||
assert c.a == [u'192.168.1.0']
|
||||
assert c.b == [u'255.255.255.0']
|
||||
c.a.append(u'192.168.1.1')
|
||||
c.a = [u'192.168.1.0', u'192.168.1.1']
|
||||
c.b = [u'255.255.255.0', u'255.255.255.255']
|
||||
|
||||
|
||||
def test_consistency_ip_netmask_multi_master():
|
||||
a = IPOption('a', '', multi=True)
|
||||
b = NetmaskOption('b', '', multi=True)
|
||||
@ -406,9 +440,7 @@ def test_consistency_broadcast_error():
|
||||
b.impl_add_consistency('network_netmask', a)
|
||||
c.impl_add_consistency('broadcast', a)
|
||||
c = Config(od)
|
||||
c.a = ['192.168.1.0']
|
||||
raises(ConfigError, "c.b = ['255.255.255.0']")
|
||||
raises(ConfigError, "c.c = ['192.168.1.255']")
|
||||
raises(ConfigError, "c.a = ['192.168.1.0']")
|
||||
|
||||
|
||||
def test_consistency_broadcast_default_1():
|
||||
|
Reference in New Issue
Block a user