Merge branch 'master' into orm
Conflicts: test/test_config_api.py tiramisu/autolib.py tiramisu/config.py tiramisu/option.py tiramisu/value.py
This commit is contained in:
@ -5,7 +5,8 @@ from tiramisu.setting import owners, groups
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import IPOption, NetworkOption, NetmaskOption, IntOption,\
|
||||
BroadcastOption, SymLinkOption, OptionDescription
|
||||
from tiramisu.error import ConfigError
|
||||
from tiramisu.error import ConfigError, ValueWarning
|
||||
import warnings
|
||||
|
||||
|
||||
def test_consistency():
|
||||
@ -19,6 +20,19 @@ def test_consistency():
|
||||
raises(ConfigError, "a.impl_add_consistency('not_equal', 'a')")
|
||||
|
||||
|
||||
def test_consistency_warnings_only():
|
||||
a = IntOption('a', '')
|
||||
b = IntOption('b', '')
|
||||
od = OptionDescription('od', '', [a, b])
|
||||
a.impl_add_consistency('not_equal', b, warnings_only=True)
|
||||
c = Config(od)
|
||||
c.a = 1
|
||||
warnings.simplefilter("always", ValueWarning)
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
c.b = 1
|
||||
assert w != []
|
||||
|
||||
|
||||
def test_consistency_not_equal():
|
||||
a = IntOption('a', '')
|
||||
b = IntOption('b', '')
|
||||
@ -186,6 +200,29 @@ def test_consistency_network_netmask():
|
||||
raises(ValueError, "c.a = '192.168.1.1'")
|
||||
|
||||
|
||||
def test_consistency_ip_in_network():
|
||||
a = NetworkOption('a', '')
|
||||
b = NetmaskOption('b', '')
|
||||
c = IPOption('c', '')
|
||||
od = OptionDescription('od', '', [a, b, c])
|
||||
c.impl_add_consistency('in_network', a, b)
|
||||
cfg = Config(od)
|
||||
cfg.a = '192.168.1.0'
|
||||
cfg.b = '255.255.255.0'
|
||||
cfg.c = '192.168.1.1'
|
||||
raises(ValueError, "cfg.c = '192.168.2.1'")
|
||||
|
||||
|
||||
def test_consistency_ip_in_network_len_error():
|
||||
a = NetworkOption('a', '')
|
||||
b = NetmaskOption('b', '')
|
||||
c = IPOption('c', '')
|
||||
od = OptionDescription('od', '', [a, b, c])
|
||||
c.impl_add_consistency('in_network', a)
|
||||
cfg = Config(od)
|
||||
raises(ConfigError, "cfg.a = '192.168.2.0'")
|
||||
|
||||
|
||||
def test_consistency_ip_netmask_network_error():
|
||||
a = IPOption('a', '')
|
||||
b = NetworkOption('b', '')
|
||||
@ -301,7 +338,7 @@ def test_consistency_broadcast_error():
|
||||
c.impl_add_consistency('broadcast', a)
|
||||
c = Config(od)
|
||||
c.a = ['192.168.1.0']
|
||||
c.b = ['255.255.255.0']
|
||||
raises(ConfigError, "c.b = ['255.255.255.0']")
|
||||
raises(ConfigError, "c.c = ['192.168.1.255']")
|
||||
|
||||
|
||||
@ -346,3 +383,17 @@ def test_consistency_permissive():
|
||||
c.cfgimpl_get_settings().setpermissive(('hidden',))
|
||||
c.read_write()
|
||||
c.a = 1
|
||||
|
||||
|
||||
def return_val(*args, **kwargs):
|
||||
return '192.168.1.1'
|
||||
|
||||
|
||||
def test_consistency_with_callback():
|
||||
a = NetworkOption('a', '', default='192.168.1.0')
|
||||
b = NetmaskOption('b', '', default='255.255.255.0')
|
||||
c = IPOption('c', '', callback=return_val, callback_params={'': ((a, False),)})
|
||||
od = OptionDescription('od', '', [a, b, c])
|
||||
c.impl_add_consistency('in_network', a, b)
|
||||
cfg = Config(od)
|
||||
cfg.c
|
||||
|
Reference in New Issue
Block a user