Merge branch 'master' into orm
[tiramisu.git] / test / test_config_api.py
index 36c5e39..f76895a 100644 (file)
@@ -4,7 +4,8 @@ from py.test import raises
 
 from tiramisu.config import Config
 from tiramisu.option import IntOption, FloatOption, StrOption, ChoiceOption, \
-    BoolOption, FilenameOption, OptionDescription
+    BoolOption, FilenameOption, UnicodeOption, SymLinkOption, IPOption, \
+    PortOption, OptionDescription
 
 
 def make_description():
@@ -150,6 +151,7 @@ def test_find_in_config():
     # not OptionDescription
     raises(AttributeError, "conf.find_first(byname='gc')")
     raises(AttributeError, "conf.gc.find_first(byname='gc2')")
+    raises(ValueError, "conf.find(byname='bool', type_='unknown')")
 
 
 def test_find_multi():
@@ -208,3 +210,18 @@ def test_iter_all_prop():
     config = Config(descr)
     config.read_only()
     assert list(config.iter_all()) == [('string2', 'string2')]
+
+
+def test_invalid_option():
+    raises(TypeError, "ChoiceOption('a', '', [1, 2])")
+    raises(TypeError, "ChoiceOption('a', '', 1)")
+    raises(TypeError, "ChoiceOption('a', '', (1,), open_values='string')")
+    raises(ValueError, "ChoiceOption('a', '', (1,), 3)")
+    raises(ValueError, "FloatOption('a', '', 'string')")
+    raises(ValueError, "UnicodeOption('a', '', 1)")
+    raises(ValueError, "SymLinkOption('a', 'string')")
+    raises(ValueError, "IPOption('a', '', 1)")
+    raises(ValueError, "IPOption('a', '', 'string')")
+    raises(ValueError, "PortOption('a', '', 'string')")
+    raises(ValueError, "PortOption('a', '', '11:12:13', allow_range=True)")
+    raises(ValueError, "PortOption('a', '', 11111111111111111111)")