refactor validation

This commit is contained in:
2015-04-18 22:53:45 +02:00
parent c566ad1111
commit 10768a6067
14 changed files with 336 additions and 237 deletions

View File

@ -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():