help in API became usable

This commit is contained in:
2018-10-07 10:55:52 +02:00
parent fbff3d9ced
commit 290f687f6c
12 changed files with 716 additions and 620 deletions

View File

@ -136,14 +136,17 @@ def test_information_config():
config = Config(descr)
string = 'some informations'
#
assert list(config.information.list()) == []
config.information.set('info', string)
assert config.information.get('info') == string
assert list(config.information.list()) == ['info']
#
raises(ValueError, "config.information.get('noinfo')")
assert config.information.get('noinfo', 'default') == 'default'
config.information.reset('info')
raises(ValueError, "config.information.get('info')")
raises(ValueError, "config.information.reset('noinfo')")
assert list(config.information.list()) == []
def test_information_option():
@ -151,14 +154,17 @@ def test_information_option():
config = Config(descr)
string = 'some informations'
#
list(config.option('gc.name').information.list()) == []
config.option('gc.name').information.set('info', string)
assert config.option('gc.name').information.get('info') == string
list(config.option('gc.name').information.list()) == ['info']
#
raises(ValueError, "config.option('gc.name').information.get('noinfo')")
assert config.option('gc.name').information.get('noinfo', 'default') == 'default'
config.option('gc.name').information.reset('info')
raises(ValueError, "config.option('gc.name').information.get('info')")
raises(ValueError, "config.option('gc.name').information.reset('noinfo')")
list(config.option('gc.name').information.list()) == []
#
assert config.option('wantref').information.get('info') == 'default value'
config.option('wantref').information.set('info', 'default value')

View File

@ -149,14 +149,14 @@ def test_find_in_config():
conf = Config(descr)
conf.property.read_only()
conf.permissive.set(frozenset(['hidden']))
ret = conf.option.find('dummy')
ret = list(conf.option.find('dummy'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.dummy').option.get())
#
ret = conf.option.find('dummy', first=True).option.get()
_is_same_opt(ret, conf.option('gc.dummy').option.get())
#
ret = conf.option.find('float')
ret = list(conf.option.find('float'))
assert len(ret) == 2
_is_same_opt(ret[0].option.get(), conf.option('gc.float').option.get())
_is_same_opt(ret[1].option.get(), conf.option('float').option.get())
@ -177,48 +177,49 @@ def test_find_in_config():
#_is_same_opt(ret[0], conf.unwrap_from_path('gc.name'))
#_is_same_opt(conf.find_first(byvalue='ref'), conf.unwrap_from_path('gc.name'))
#
ret = conf.option.find('prop')
ret = list(conf.option.find('prop'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.prop').option.get())
#
ret = conf.option.find('prop', value=None)
ret = conf.option.find('prop')
ret = list(conf.option.find('prop', value=None))
assert len(ret) == 1
ret = list(conf.option.find('prop'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.prop').option.get())
#
conf.property.read_write()
raises(AttributeError, "assert conf.option.find('prop').option.get()")
ret = conf.unrestraint.option.find(name='prop')
ret = list(conf.unrestraint.option.find(name='prop'))
assert len(ret) == 2
_is_same_opt(ret[0].option.get(), conf.unrestraint.option('gc.gc2.prop').option.get())
_is_same_opt(ret[1].option.get(), conf.forcepermissive.option('gc.prop').option.get())
#
ret = conf.forcepermissive.option.find('prop')
ret = list(conf.forcepermissive.option.find('prop'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.forcepermissive.option('gc.prop').option.get())
#
_is_same_opt(conf.forcepermissive.option.find('prop', first=True).option.get(), conf.forcepermissive.option('gc.prop').option.get())
# combinaison of filters
ret = conf.unrestraint.option.find('prop', type=BoolOption)
ret = list(conf.unrestraint.option.find('prop', type=BoolOption))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.unrestraint.option('gc.gc2.prop').option.get())
_is_same_opt(conf.unrestraint.option.find('prop', type=BoolOption, first=True).option.get(), conf.unrestraint.option('gc.gc2.prop').option.get())
#
ret = conf.option.find('dummy', value=False)
ret = list(conf.option.find('dummy', value=False))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.dummy').option.get())
#
_is_same_opt(conf.option.find('dummy', value=False, first=True).option.get(), conf.option('gc.dummy').option.get())
#subconfig
ret = conf.option('gc').find('dummy')
ret = list(conf.option('gc').find('dummy'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.dummy').option.get())
#
ret = conf.option('gc').find('float')
ret = list(conf.option('gc').find('float'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.float').option.get())
#
ret = conf.option('gc').find('bool')
ret = list(conf.option('gc').find('bool'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.gc2.bool').option.get())
_is_same_opt(conf.option('gc').find('bool', value=False, first=True).option.get(), conf.option('gc.gc2.bool').option.get())
@ -227,13 +228,13 @@ def test_find_in_config():
#
raises(AttributeError, "conf.option('gc').find('wantref').option.get()")
#
ret = conf.unrestraint.option('gc').find('prop')
ret = list(conf.unrestraint.option('gc').find('prop'))
assert len(ret) == 2
_is_same_opt(ret[0].option.get(), conf.unrestraint.option('gc.gc2.prop').option.get())
_is_same_opt(ret[1].option.get(), conf.forcepermissive.option('gc.prop').option.get())
#
conf.property.read_only()
ret = conf.option('gc').find('prop')
ret = list(conf.option('gc').find('prop'))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), conf.option('gc.prop').option.get())
# not OptionDescription
@ -246,16 +247,16 @@ def test_find_multi():
o = OptionDescription('od', '', [b])
conf = Config(o)
#
raises(AttributeError, "conf.option.find('bool', value=True)")
raises(AttributeError, "conf.option.find('bool', value=True, first=True)")
raises(AttributeError, "list(conf.option.find('bool', value=True))")
raises(AttributeError, "list(conf.option.find('bool', value=True, first=True))")
conf.option('bool').value.set([False])
raises(AttributeError, "conf.option.find('bool', value=True)")
raises(AttributeError, "conf.option.find('bool', value=True, first=True)")
raises(AttributeError, "list(conf.option.find('bool', value=True))")
raises(AttributeError, "list(conf.option.find('bool', value=True, first=True))")
conf.option('bool').value.set([False, False])
raises(AttributeError, "conf.option.find('bool', value=True)")
raises(AttributeError, "conf.option.find('bool', value=True, first=True)")
raises(AttributeError, "list(conf.option.find('bool', value=True))")
raises(AttributeError, "list(conf.option.find('bool', value=True, first=True))")
conf.option('bool').value.set([False, False, True])
ret = conf.option.find('bool', value=True)
ret = list(conf.option.find('bool', value=True))
assert len(ret) == 1
_is_same_opt(ret[0].option.get(), b)
_is_same_opt(conf.option.find('bool', value=True, first=True).option.get(), b)
@ -264,7 +265,7 @@ def test_find_multi():
def test_does_not_find_in_config():
descr = make_description()
conf = Config(descr)
raises(AttributeError, "conf.option.find('IDontExist')")
raises(AttributeError, "list(conf.option.find('IDontExist'))")
def test_filename():
@ -341,7 +342,11 @@ def test_help():
od1 = OptionDescription('o', '', [stro])
od2 = OptionDescription('o', '', [od1])
cfg = Config(od2)
cfg.help(_display=False, _valid=True)
cfg.help(_display=False)
cfg.config.help(_display=False)
cfg.option.help(_display=False)
cfg.option('o').help(_display=False)
cfg.option('o.s').help(_display=False)
def test_config_reset():

View File

@ -689,7 +689,7 @@ def test_find_dyndescription_context():
#assert len(opts) == 1
#assert isinstance(opts[0], DynSymLinkOption)
#assert opts[0].impl_getname() == 'stval1'
raises(AttributeError, "api.option.find('strnotexists')")
raises(AttributeError, "list(api.option.find('strnotexists'))")
def test_information_dyndescription_context():

View File

@ -145,7 +145,7 @@ def test_contexts():
def test_find():
meta = make_metaconfig()
ret = meta.option.find('i2')
ret = list(meta.option.find('i2'))
assert len(ret) == 1
assert 1 == ret[0].value.get()
assert 1 == meta.option.find('i2', first=True).value.get()

View File

@ -383,7 +383,7 @@ def test_allow_multiple_changes_from_config():
def test_access_by_get():
descr = make_description()
api = Config(descr)
raises(AttributeError, "api.option.find('idontexist')")
raises(AttributeError, "list(api.option.find('idontexist'))")
assert api.option.find('wantref', first=True).value.get() is False
assert api.option.find('dummy', first=True).value.get() is False