Merge branch 'master' into orm
[tiramisu.git] / test / test_requires.py
index 69501b9..4f35cfd 100644 (file)
@@ -26,6 +26,20 @@ def test_requires():
     assert props == ['disabled']
 
 
+def test_requires_invalid():
+    a = BoolOption('activate_service', '', True)
+    raises(ValueError, "IPOption('ip_address_service', '', requires='string')")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': False, 'action': 'disabled', 'unknown': True}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': False}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'action': 'disabled'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'expected': False, 'action': 'disabled'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': False, 'action': 'disabled', 'inverse': 'string'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': False, 'action': 'disabled', 'transitive': 'string'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': False, 'action': 'disabled', 'same_action': 'string'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': 'string', 'expected': False, 'action': 'disabled'}])")
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': 'string', 'action': 'disabled'}])")
+
+
 def test_requires_same_action():
     a = BoolOption('activate_service', '', True)
     b = BoolOption('activate_service_web', '', True,
@@ -504,6 +518,11 @@ def test_requires_multi_disabled_inverse_2():
 #    c.cfgimpl_get_settings()[b].append("test")
 
 
+def test_requires_different_inverse():
+    a = BoolOption('activate_service', '', True)
+    raises(ValueError, "IPOption('ip_address_service', '', requires=[{'option': a, 'expected': True, 'action': 'disabled', 'inverse': True}, {'option': a, 'expected': True, 'action': 'disabled', 'inverse': False}])")
+
+
 def test_requires_recursive_path():
     a = BoolOption('activate_service', '', True)
     b = IPOption('ip_address_service', '',