find in group or meta should return GroupConfig (and not KerneleGroupConfig) and remote 'first' attributs

This commit is contained in:
2018-10-07 16:29:56 +02:00
parent 5b5f06a612
commit e4362e9b09
3 changed files with 52 additions and 47 deletions

View File

@ -248,26 +248,26 @@ def test_meta_meta_set():
assert meta.config('meta.conf1').option('od1.i1').value.get() == meta.config('meta.conf2').option('od1.i1').value.get() == 7
#
dconfigs = []
for conf in meta.config.find('i1', value=7, first=True).config.list():
for conf in meta.config.find('i1', value=7).config.list():
dconfigs.append(conf._config_bag.context)
assert [conf1, conf2] == dconfigs
meta.config('meta.conf1').option('od1.i1').value.set(8)
#
dconfigs = []
for conf in meta.config.find('i1', first=True).config.list():
for conf in meta.config.find('i1').config.list():
dconfigs.append(conf._config_bag.context)
assert [conf1, conf2] == dconfigs
assert conf2 == list(meta.config.find('i1', value=7, first=True).config.list())[0]._config_bag.context
assert conf1 == list(meta.config.find('i1', value=8, first=True).config.list())[0]._config_bag.context
assert conf2 == list(meta.config.find('i1', value=7).config.list())[0]._config_bag.context
assert conf1 == list(meta.config.find('i1', value=8).config.list())[0]._config_bag.context
#
dconfigs = []
for conf in meta.config.find('i5', value=2, first=True).config.list():
for conf in meta.config.find('i5', value=2).config.list():
dconfigs.append(conf._config_bag.context)
assert [conf1, conf2] == dconfigs
#
raises(AttributeError, "meta.config.find('i1', value=10, first=True)")
raises(AttributeError, "meta.config.find('not', value=10, first=True)")
raises(AttributeError, "meta.config.find('i6', first=True)")
raises(AttributeError, "meta.config.find('i1', value=10)")
raises(AttributeError, "meta.config.find('not', value=10)")
raises(AttributeError, "meta.config.find('i6')")
raises(ValueError, "meta.value.set('od1.i6', 7, only_config=True, force_default=True)")
raises(ValueError, "meta.value.set('od1.i6', 7, only_config=True, force_default_if_same=True)")
raises(ValueError, "meta.value.set('od1.i6', 7, only_config=True, force_dont_change_value=True)")
@ -303,9 +303,17 @@ def test_group_find_firsts():
conf1 = Config(od2, session_id='conf1')
conf2 = Config(od2, session_id='conf2')
grp = GroupConfig([conf1, conf2])
itr = grp.config.find('i1', first=True).config.list()
itr = grp.config.find('i1').config.list()
conf1._config_bag.context == next(itr)._config_bag.context
conf2._config_bag.context == next(itr)._config_bag.context
try:
next(itr)
except StopIteration:
pass
except:
raise Exception('no')
else:
raise Exception('no')
def test_group_group():
@ -352,19 +360,19 @@ def test_meta_master_slaves():
conf2 = Config(od, session_id='conf2')
meta = MetaConfig([conf1, conf2])
meta.property.read_only()
itr = meta.config.find('ip_admin_eth0', first=True).config.list()
itr = meta.config.find('ip_admin_eth0').config.list()
assert conf1._config_bag.context == next(itr)._config_bag.context
assert conf2._config_bag.context == next(itr)._config_bag.context
itr = meta.config.find('netmask_admin_eth0', first=True).config.list()
itr = meta.config.find('netmask_admin_eth0').config.list()
assert conf1._config_bag.context == next(itr)._config_bag.context
assert conf2._config_bag.context == next(itr)._config_bag.context
meta.property.read_write()
raises(AttributeError, "meta.config.find('netmask_admin_eth0', first=True)")
itr = meta.unrestraint.config.find('netmask_admin_eth0', first=True).config.list()
raises(AttributeError, "meta.config.find('netmask_admin_eth0')")
itr = meta.unrestraint.config.find('netmask_admin_eth0').config.list()
assert conf1._config_bag.context == next(itr)._config_bag.context
assert conf2._config_bag.context == next(itr)._config_bag.context
meta.property.read_only()
itr = meta.config.find('netmask_admin_eth0', first=True).config.list()
itr = meta.config.find('netmask_admin_eth0').config.list()
assert conf1._config_bag.context == next(itr)._config_bag.context
assert conf2._config_bag.context == next(itr)._config_bag.context