don't display warning in mandatory_warnings
[tiramisu.git] / test / test_option_consistency.py
index 37dcc9b..f83e135 100644 (file)
@@ -551,6 +551,24 @@ def test_consistency_broadcast_error():
     raises(ConfigError, "c.a = ['192.168.1.0']")
 
 
+def test_consistency_broadcast_warnings():
+    warnings.simplefilter("always", ValueWarning)
+    a = NetworkOption('a', '', properties=('mandatory', 'disabled'))
+    b = NetmaskOption('b', '', properties=('mandatory', 'disabled'))
+    c = NetmaskOption('c', '', properties=('mandatory', 'disabled'))
+    od = OptionDescription('a', '', [a, b, c])
+    b.impl_add_consistency('network_netmask', a, warnings_only=True)
+    c = Config(od)
+    with warnings.catch_warnings(record=True) as w:
+        c.a = '192.168.1.4'
+        c.b = '255.255.255.0'
+    assert len(w) == 1
+    c.read_write()
+    with warnings.catch_warnings(record=True) as w:
+        list(c.cfgimpl_get_values().mandatory_warnings())
+    assert len(w) == 0
+
+
 def test_consistency_broadcast_default_1():
     a = NetworkOption('a', '', '192.168.1.0')
     b = NetmaskOption('b', '', '255.255.255.128')