add unique parameter to option
This commit is contained in:
@ -24,6 +24,25 @@ def test_multi():
|
||||
raises(ConfigError, "multi._getcontext()")
|
||||
|
||||
|
||||
def test_multi_unique():
|
||||
i = IntOption('int', '', multi=True, unique=True)
|
||||
o = OptionDescription('od', '', [i])
|
||||
c = Config(o)
|
||||
assert c.int == []
|
||||
c.int = [0]
|
||||
assert c.int == [0]
|
||||
raises(ValueError, "c.int = [0, 0]")
|
||||
raises(ValueError, "c.int = [1, 0, 2, 3, 4, 5, 6, 0, 7]")
|
||||
raises(ValueError, "c.int.append(0)")
|
||||
raises(ValueError, "c.int.extend([1, 2, 1, 3])")
|
||||
raises(ValueError, "c.int.extend([1, 2, 0, 3])")
|
||||
c.int.extend([4, 5, 6])
|
||||
|
||||
|
||||
def test_non_multi_unique():
|
||||
raises(ValueError, "IntOption('int', '', unique=True)")
|
||||
|
||||
|
||||
def test_multi_none():
|
||||
s = StrOption('str', '', multi=True)
|
||||
o = OptionDescription('od', '', [s])
|
||||
|
@ -4,7 +4,7 @@ do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import StrOption, OptionDescription, submulti
|
||||
from tiramisu.option import StrOption, IntOption, OptionDescription, submulti
|
||||
from tiramisu.value import SubMulti, Multi
|
||||
from tiramisu.error import SlaveError
|
||||
|
||||
@ -663,3 +663,19 @@ def test_callback_submulti():
|
||||
assert cfg.getowner(multi2) == owners.default
|
||||
assert cfg.multi == [['val']]
|
||||
assert cfg.multi2 == [['val']]
|
||||
|
||||
|
||||
def test_submulti_unique():
|
||||
i = IntOption('int', '', multi=submulti, unique=True)
|
||||
o = OptionDescription('od', '', [i])
|
||||
c = Config(o)
|
||||
assert c.int == []
|
||||
c.int = [[0]]
|
||||
assert c.int == [[0]]
|
||||
raises(ValueError, "c.int = [[0, 0]]")
|
||||
c.int = [[0], [0]]
|
||||
raises(ValueError, "c.int[0] = [1, 0, 2, 3, 4, 5, 6, 0, 7]")
|
||||
raises(ValueError, "c.int[0].append(0)")
|
||||
raises(ValueError, "c.int[0].extend([1, 2, 1, 3])")
|
||||
raises(ValueError, "c.int[0].extend([1, 2, 0, 3])")
|
||||
c.int[0].extend([4, 5, 6])
|
||||
|
Reference in New Issue
Block a user