This commit is contained in:
2019-02-24 20:23:16 +01:00
parent 375b3c91de
commit af55e20afe
12 changed files with 76 additions and 80 deletions

View File

@ -12,7 +12,7 @@ from tiramisu import Config
from tiramisu.config import SubConfig
from tiramisu.i18n import _
from tiramisu import Config, IntOption, FloatOption, StrOption, ChoiceOption, \
BoolOption, UnicodeOption, OptionDescription, undefined
BoolOption, UnicodeOption, SymLinkOption, OptionDescription, undefined
from tiramisu.error import ConflictError, ConfigError, PropertiesOptionError, APIError
from tiramisu.storage import list_sessions
@ -68,20 +68,13 @@ def test_base_config_name():
# assert raises(TypeError, "Config('str')")
#def test_base_path():
# gcdummy = BoolOption('dummy', 'dummy', default=False)
# descr = OptionDescription('tiramisu', '', [gcdummy])
# cfg = Config(descr)
# assert cfg._impl_path is None
# base = OptionDescription('config', '', [descr])
# cfg = Config(base)
# assert cfg._impl_path is None
# assert cfg.getattr('tiramisu', None, validate_properties=False)._impl_path == 'tiramisu'
# nbase = OptionDescription('baseconfig', '', [base])
# cfg = Config(nbase)
# assert cfg._impl_path is None
# assert cfg.getattr('config', None, validate_properties=False)._impl_path == 'config'
# assert cfg.getattr('config.tiramisu', None, validate_properties=False)._impl_path == 'config.tiramisu'
def test_base_path():
gcdummy = BoolOption('dummy', 'dummy', default=False)
descr = OptionDescription('tiramisu', '', [gcdummy])
Config(descr)
base = OptionDescription('config', '', [descr])
base
raises(ConfigError, "Config(base)")
def test_base_config_force_permissive():
@ -306,3 +299,40 @@ def test_config_subconfig():
od2 = OptionDescription('od2', '', [od1])
conf1 = Config(od2, session_id='conf1')
raises(ConfigError, "conf2 = Config(od1, session_id='conf2')")
def test_config_invalidsession():
i = IntOption('i', '')
o = OptionDescription('val', '', [i])
o2 = OptionDescription('val', '', [o])
raises(ValueError, 'Config(o2, session_id=2)')
def test_config_od_name():
i = IntOption('i', '')
s = SymLinkOption('s', i)
o = OptionDescription('val', '', [i, s])
o2 = OptionDescription('val', '', [o])
c = Config(o2)
assert c.option('val.i').option.name() == 'i'
assert c.option('val.s').option.name() == 's'
assert c.option('val.s').option.name(follow_symlink=True) == 'i'
def test_config_od_type():
i = IntOption('i', '')
o = OptionDescription('val', '', [i])
o2 = OptionDescription('val', '', [o])
c = Config(o2)
assert c.option('val.i').option.type() == 'integer'
def test_config_default():
i = IntOption('i', '', 8)
o = OptionDescription('val', '', [i])
o2 = OptionDescription('val', '', [o])
c = Config(o2)
assert c.option('val.i').value.default() == 8
c.option('val.i').value.set(9)
assert c.option('val.i').value.get() == 9
assert c.option('val.i').value.default() == 8

View File

@ -104,6 +104,7 @@ def test_network_cidr():
cfg.option('a').value.set('0.0.0.0/0')
raises(ValueError, "cfg.option('a').value.set('192.168.1.1')")
raises(ValueError, "cfg.option('a').value.set('192.168.1.1/24')")
raises(ValueError, "cfg.option('a').value.set('2001:db00::0/24')")
def test_network_invalid():
@ -133,6 +134,7 @@ def test_broadcast():
raises(ValueError, "cfg.option('a').value.set('192.168.0.300')")
raises(ValueError, "cfg.option('a').value.set(1)")
raises(ValueError, "cfg.option('a').value.set(2)")
raises(ValueError, "cfg.option('a').value.set('2001:db8::1')")
cfg.option('a').value.set('0.0.0.0')
cfg.option('a').value.set('255.255.255.0')

View File

@ -222,3 +222,8 @@ def test_intoption():
cfg.option('test2').value.set(2)
cfg.option('test2').value.set(3)
raises(ValueError, "cfg.option('test2').value.set(4)")
def test_get_display_type():
i1 = IntOption('test1', 'description', min_number=3)
assert i1.get_display_type() == 'integer'

View File

@ -82,6 +82,9 @@ def test_mod_read_only_write():
config.property.setdefault(type='read_write', when='append', properties={'disabled',
'hidden'})
config.property.setdefault(type='read_write', when='remove', properties=set([]))
raises(ValueError, "config.property.setdefault(type='unknown', when='append', properties={'disabled'})")
raises(ValueError, "config.property.setdefault(type='read_only', when='unknown', properties={'disabled'})")
raises(TypeError, "config.property.setdefault(type='read_only', when='append', properties=['disabled'])")
assert config.property.getdefault() == {'cache'}
assert config.property.getdefault('read_only', 'append') == {'disabled'}
@ -116,6 +119,8 @@ def test_mod_read_only_write():
'everything_frozen',
'mandatory',
'empty'}
raises(ValueError, "config2.property.getdefault('unknown', 'remove')")
raises(ValueError, "config2.property.getdefault('read_write', 'unknown')")
def test_setitem():
@ -286,6 +291,7 @@ def test_apply_requires_from_config():
raises(PropertiesOptionError, "api.option('opt.str').value.get()")
assert 'hidden' in api.forcepermissive.option('opt.str').property.get()
assert 'hidden' not in api.forcepermissive.option('opt.str').option.properties()
assert 'hidden' not in api.forcepermissive.option('opt.str').option.properties(only_raises=True)
def test_apply_requires_with_disabled():
@ -301,6 +307,7 @@ def test_apply_requires_with_disabled():
api.option('int').value.set(1)
raises(PropertiesOptionError, "api.option('opt.str').value.get()")
assert 'disabled' not in api.unrestraint.option('opt.str').option.properties()
assert 'disabled' not in api.unrestraint.option('opt.str').option.properties(only_raises=True)
assert 'disabled' in api.unrestraint.option('opt.str').property.get()