some improvements
[tiramisu.git] / test / test_option_consistency.py
index 0c19fa7..a5fedc4 100644 (file)
@@ -55,6 +55,23 @@ def test_consistency_warnings_only():
     assert w != []
 
 
+def test_consistency_warnings_only_more_option():
+    a = IntOption('a', '')
+    b = IntOption('b', '')
+    d = IntOption('d', '')
+    od = OptionDescription('od', '', [a, b, d])
+    a.impl_add_consistency('not_equal', b, d, 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 != []
+    with warnings.catch_warnings(record=True) as w:
+        c.d = 1
+    assert w != []
+
+
 def test_consistency_not_equal():
     a = IntOption('a', '')
     b = IntOption('b', '')
@@ -283,10 +300,7 @@ def test_consistency_ip_in_network_len_error():
     b = NetmaskOption('b', '')
     c = IPOption('c', '')
     od = OptionDescription('od', '', [a, b, c])
-    c.impl_add_consistency('in_network', a)
-    cfg = Config(od)
-    cfg
-    raises(ConfigError, "cfg.a = '192.168.2.0'")
+    raises(ConfigError, "c.impl_add_consistency('in_network', a)")
 
 
 def test_consistency_ip_netmask_network_error():
@@ -338,6 +352,17 @@ def test_consistency_network_netmask_multi():
     raises(ValueError, "c.a = ['192.168.1.1']")
 
 
+def test_consistency_network_netmask_multi_slave_default_multi():
+    a = NetworkOption('a', '', default_multi=u'192.168.1.0', multi=True, properties=('mandatory',))
+    b = NetmaskOption('b', '', default_multi=u'255.255.255.0', 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.a.append()
+
+
 def test_consistency_network_netmask_multi_slave_default():
     a = NetworkOption('a', '', multi=True, properties=('mandatory',))
     b = NetmaskOption('b', '', default_multi=u'255.255.255.0', multi=True, properties=('mandatory',))