* config herite from BaseInformation class
[tiramisu.git] / test / test_option_consistency.py
1 import autopath
2 from py.test import raises
3
4 from tiramisu.setting import owners
5 from tiramisu.config import Config
6 from tiramisu.option import IPOption, NetworkOption, NetmaskOption, IntOption,\
7     OptionDescription
8
9
10 def test_consistency_not_equal():
11     a = IntOption('a', '')
12     b = IntOption('b', '')
13     od = OptionDescription('od', '', [a, b])
14     a.impl_add_consistency('not_equal', (a, b))
15     c = Config(od)
16     assert c.a is None
17     assert c.b is None
18     c.a = 1
19     del(c.a)
20     c.a = 1
21     raises(ValueError, "c.b = 1")
22     c.b = 2
23
24
25 def test_consistency_default():
26     a = IntOption('a', '', 1)
27     b = IntOption('b', '', 1)
28     raises(ValueError, "a.impl_add_consistency('not_equal', (a, b))")
29
30
31 def test_consistency_default_diff():
32     a = IntOption('a', '', 3)
33     b = IntOption('b', '', 1)
34     od = OptionDescription('od', '', [a, b])
35     a.impl_add_consistency('not_equal', (a, b))
36     c = Config(od)
37     raises(ValueError, "c.a = 1")
38     c.a = 2
39     c.b = 3
40     assert c.getowner('a') is owners.user
41     raises(ValueError, "del(c.a)")
42     assert c.getowner('a') is owners.user
43
44
45 def test_consistency_ip_netmask():
46     a = IPOption('a', '')
47     b = NetmaskOption('b', '')
48     od = OptionDescription('od', '', [a, b])
49     b.impl_add_consistency('ip_netmask', (b, a))
50     c = Config(od)
51     c.a = '192.168.1.1'
52     c.b = '255.255.255.0'
53     c.a = '192.168.1.2'
54     c.b = '255.255.255.255'
55     c.b = '255.255.255.0'
56     raises(ValueError, "c.a = '192.168.1.0'")
57
58
59 def test_consistency_network_netmask():
60     a = NetworkOption('a', '')
61     b = NetmaskOption('b', '')
62     od = OptionDescription('od', '', [a, b])
63     b.impl_add_consistency('network_netmask', (b, a))
64     c = Config(od)
65     c.a = '192.168.1.1'
66     c.b = '255.255.255.255'
67     del(c.b)
68     c.a = '192.168.1.0'
69     c.b = '255.255.255.0'
70     raises(ValueError, "c.a = '192.168.1.1'")