coverage for tiramisu/value.py
This commit is contained in:
@ -5,12 +5,16 @@ from py.test import raises
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.config import Config, GroupConfig, MetaConfig
|
||||
from tiramisu.option import IntOption, StrOption, OptionDescription
|
||||
from tiramisu.option import IntOption, StrOption, NetworkOption, NetmaskOption, OptionDescription
|
||||
from tiramisu.error import ConfigError, ConflictError
|
||||
|
||||
owners.addowner('meta')
|
||||
|
||||
|
||||
def raise_exception():
|
||||
raise Exception('test')
|
||||
|
||||
|
||||
def make_description():
|
||||
i1 = IntOption('i1', '')
|
||||
i2 = IntOption('i2', '', default=1)
|
||||
@ -155,7 +159,6 @@ def test_meta_meta_set():
|
||||
meta2.cfgimpl_get_settings().setowner(owners.meta)
|
||||
conf1, conf2 = meta1.cfgimpl_get_children()
|
||||
meta2.set_value('od1.i1', 7, only_config=True)
|
||||
#PropertiesOptionError
|
||||
meta2.set_value('od1.i6', 7, only_config=True)
|
||||
assert conf1.od1.i1 == conf2.od1.i1 == 7
|
||||
assert conf1.getowner(conf1.unwrap_from_path('od1.i1')) is conf2.getowner(conf2.unwrap_from_path('od1.i1')) is owners.user
|
||||
@ -500,3 +503,33 @@ def test_meta_force_default_and_dont_change():
|
||||
meta.read_write()
|
||||
meta.cfgimpl_get_settings().setowner(owners.meta)
|
||||
raises(ValueError, "meta.set_value('ip_admin_eth0', ['192.168.1.4'], force_default=True, force_dont_change_value=True)")
|
||||
|
||||
|
||||
def test_meta_properties_meta():
|
||||
ip_admin_eth0 = NetworkOption('ip_admin_eth0', "ip", multi=True, default=['192.168.1.1'])
|
||||
netmask_admin_eth0 = NetmaskOption('netmask_admin_eth0', "mask", multi=True, properties=('disabled',))
|
||||
netmask_admin_eth0.impl_add_consistency('network_netmask', ip_admin_eth0)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
conf1 = Config(interface1, name='conf1')
|
||||
conf1.read_write()
|
||||
conf2 = Config(interface1, name='conf2')
|
||||
conf2.read_write()
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
meta.read_write()
|
||||
assert conf1.make_dict() == {}
|
||||
|
||||
|
||||
def test_meta_exception_meta():
|
||||
ip_admin_eth0 = NetworkOption('ip_admin_eth0', "ip", multi=True, default=['192.168.1.1'])
|
||||
netmask_admin_eth0 = NetmaskOption('netmask_admin_eth0', "mask", multi=True, callback=raise_exception)
|
||||
netmask_admin_eth0.impl_add_consistency('network_netmask', ip_admin_eth0)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
conf1 = Config(interface1, name='conf1')
|
||||
conf1.read_write()
|
||||
conf2 = Config(interface1, name='conf2')
|
||||
conf2.read_write()
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
meta.read_write()
|
||||
raises(Exception, "conf1.make_dict()")
|
||||
|
@ -3,7 +3,7 @@ from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.config import Config, MetaConfig
|
||||
from tiramisu.option import StrOption, IntOption, OptionDescription, submulti
|
||||
from tiramisu.value import SubMulti, Multi
|
||||
from tiramisu.error import SlaveError
|
||||
@ -679,3 +679,20 @@ def test_submulti_unique():
|
||||
raises(ValueError, "c.int[0].extend([1, 2, 1, 3])")
|
||||
raises(ValueError, "c.int[0].extend([1, 2, 0, 3])")
|
||||
c.int[0].extend([4, 5, 6])
|
||||
|
||||
|
||||
def test_multi_submulti_meta():
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
od = OptionDescription('od', '', [multi])
|
||||
conf1 = Config(od, name='conf1')
|
||||
conf1.read_write()
|
||||
conf2 = Config(od, name='conf2')
|
||||
conf2.read_write()
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
meta.read_write()
|
||||
meta.multi = [['val']]
|
||||
assert meta.multi == [['val']]
|
||||
multi = conf1.multi[0]
|
||||
multi.append()
|
||||
assert conf1.multi == [['val', None]]
|
||||
assert meta.multi == [['val']]
|
||||
|
Reference in New Issue
Block a user