in find_firsts get option only one time
[tiramisu.git] / test / test_dyn_optiondescription.py
index 446d160..5b830e5 100644 (file)
@@ -27,7 +27,7 @@ def return_dynval(suffix, value='val'):
 
 
 def return_list2(suffix):
-    return [suffix, 'val2']
+    return [str(suffix), 'val2']
 
 
 def return_list(val=None):
@@ -37,6 +37,14 @@ def return_list(val=None):
         return ['val1', 'val2']
 
 
+def return_same_list():
+    return ['val1', 'val1']
+
+
+def return_wrong_list():
+    return ['---', ' ']
+
+
 def test_build_dyndescription():
     st = StrOption('st', '')
     dod = DynOptionDescription('dod', '', [st], callback=return_list)
@@ -193,18 +201,18 @@ def test_prop_dyndescription():
     stval2 = cfg.unwrap_from_path('od.dodval2.stval2')
     dodval1 = cfg.unwrap_from_path('od.dodval1')
     dodval2 = cfg.unwrap_from_path('od.dodval2')
-    assert str(cfg.cfgimpl_get_settings()[stval1]) == str(['test'])
-    assert str(cfg.cfgimpl_get_settings()[stval2]) == str(['test'])
+    assert str(cfg.cfgimpl_get_settings()[stval1]) in [str(['test']), str([u'test'])]
+    assert str(cfg.cfgimpl_get_settings()[stval2]) in [str(['test']), str([u'test'])]
     cfg.cfgimpl_get_settings()[stval2].append('test2')
-    assert str(cfg.cfgimpl_get_settings()[stval1]) == str(['test'])
-    assert str(cfg.cfgimpl_get_settings()[stval2]) == str(['test', 'test2'])
+    assert str(cfg.cfgimpl_get_settings()[stval1]) in [str(['test']), str([u'test'])]
+    assert str(cfg.cfgimpl_get_settings()[stval2]) in [str(['test', 'test2']), str([u'test', 'test2'])]
     cfg.cfgimpl_get_settings()[stval1].remove('test')
     assert str(cfg.cfgimpl_get_settings()[stval1]) == str([])
     #
     assert str(cfg.cfgimpl_get_settings()[dodval1]) == str([])
     assert str(cfg.cfgimpl_get_settings()[dodval2]) == str([])
     cfg.cfgimpl_get_settings()[dodval1].append('test1')
-    assert str(cfg.cfgimpl_get_settings()[dodval1]) == str(['test1'])
+    assert str(cfg.cfgimpl_get_settings()[dodval1]) in [str(['test1']), str([u'test1'])]
     assert str(cfg.cfgimpl_get_settings()[dodval2]) == str([])
     cfg.cfgimpl_get_settings()[dodval1].remove('test1')
     assert str(cfg.cfgimpl_get_settings()[dodval1]) == str([])
@@ -283,6 +291,7 @@ def test_build_dyndescription_context():
     dod = DynOptionDescription('dod', '', [st], callback=return_list, callback_params={'': ((val1, False),)})
     od = OptionDescription('od', '', [dod, val1])
     cfg = Config(od)
+    cfg._impl_test = True
     assert str(cfg) == """[dodval1]
 [dodval2]
 val1 = ['val1', 'val2']"""
@@ -402,11 +411,11 @@ def test_prop_dyndescription_context():
     cfg = Config(od2)
     stval1 = cfg.unwrap_from_path('od.dodval1.stval1')
     stval2 = cfg.unwrap_from_path('od.dodval2.stval2')
-    assert str(cfg.cfgimpl_get_settings()[stval1]) == str(['test'])
-    assert str(cfg.cfgimpl_get_settings()[stval2]) == str(['test'])
+    assert str(cfg.cfgimpl_get_settings()[stval1]) in [str(['test']), str([u'test'])]
+    assert str(cfg.cfgimpl_get_settings()[stval2]) in [str(['test']), str([u'test'])]
     cfg.cfgimpl_get_settings()[stval2].append('test2')
-    assert str(cfg.cfgimpl_get_settings()[stval1]) == str(['test'])
-    assert str(cfg.cfgimpl_get_settings()[stval2]) == str(['test', 'test2'])
+    assert str(cfg.cfgimpl_get_settings()[stval1]) in [str(['test']), str([u'test'])]
+    assert str(cfg.cfgimpl_get_settings()[stval2]) in [str(['test', 'test2']), str([u'test', 'test2'])]
     cfg.cfgimpl_get_settings()[stval1].remove('test')
     assert str(cfg.cfgimpl_get_settings()[stval1]) == str([])
 
@@ -1293,13 +1302,11 @@ def test_invalid_symlink_dyndescription():
 
 def test_nocallback_dyndescription():
     st = StrOption('st', '')
-    st2 = StrOption('st2', st)
+    st2 = StrOption('st2', '')
     raises(ConfigError, "DynOptionDescription('dod', '', [st, st2])")
 
 
 def test_invalid_samevalue_dyndescription():
-    def return_same_list():
-        return ['val1', 'val1']
     st = StrOption('st', '')
     dod = DynOptionDescription('dod', '', [st], callback=return_same_list)
     od = OptionDescription('od', '', [dod])
@@ -1308,10 +1315,8 @@ def test_invalid_samevalue_dyndescription():
 
 
 def test_invalid_name_dyndescription():
-    def return_same_list():
-        return ['---', ' ']
     st = StrOption('st', '')
-    dod = DynOptionDescription('dod', '', [st], callback=return_same_list)
+    dod = DynOptionDescription('dod', '', [st], callback=return_wrong_list)
     od = OptionDescription('od', '', [dod])
     cfg = Config(od)
     raises(ValueError, "print cfg")