slave with requires could not raise
[tiramisu.git] / test / test_option_setting.py
index cf6914d..8bd6d14 100644 (file)
@@ -246,14 +246,27 @@ def test_multi_with_requires_that_is_masterslave_master():
     raises(ValueError, "Config(descr)")
 
 
-def test_multi_with_requires_that_is_masterslave2():
+def test_multi_with_requires_that_is_masterslave_slave():
     b = IntOption('int', 'Test int option', default=[0], multi=True)
     c = StrOption('str', 'Test string option', multi=True)
     d = StrOption('str1', 'Test string option', requires=[{'option': c, 'expected': '1', 'action': 'hidden'}], multi=True)
     descr = OptionDescription("int", "", [b, c, d])
     descr.impl_set_group_type(groups.master)
-    Config(descr)
-
+    config = Config(descr)
+    config.read_write()
+    assert config.int == [0]
+    assert config.str == [None]
+    assert config.str1 == [None]
+    config.int = [0, 1]
+    assert config.int == [0, 1]
+    assert config.str == [None, None]
+    assert config.str1 == [None, None]
+    config.str = [None, '1']
+    config.read_only()
+    assert config.str1 == [None, None]
+    config.read_write()
+    assert config.str1[0] is None
+    raises(PropertiesOptionError, 'config.str1[1]')
 
 def test_multi_with_requires_that_is_not_same_masterslave():
     b = IntOption('int', 'Test int option', default=[0], multi=True)