Return Config not TiramisuAPI
This commit is contained in:
parent
1ef82af5d1
commit
d61d1c2931
2 changed files with 13 additions and 7 deletions
|
@ -199,8 +199,8 @@ def test_meta_meta_set():
|
||||||
errors2 = meta.value.set('od1.i6', 7, only_config=True)
|
errors2 = meta.value.set('od1.i6', 7, only_config=True)
|
||||||
assert len(errors1) == 0
|
assert len(errors1) == 0
|
||||||
assert len(errors2) == 2
|
assert len(errors2) == 2
|
||||||
conf1 = meta.config('meta.conf1')._config.context
|
conf1 = meta.config('meta.conf1')._config
|
||||||
conf2 = meta.config('meta.conf2')._config.context
|
conf2 = meta.config('meta.conf2')._config
|
||||||
assert meta.config('meta.conf1').option('od1.i1').value.get() == meta.config('meta.conf2').option('od1.i1').value.get() == 7
|
assert meta.config('meta.conf1').option('od1.i1').value.get() == meta.config('meta.conf2').option('od1.i1').value.get() == 7
|
||||||
#
|
#
|
||||||
dconfigs = []
|
dconfigs = []
|
||||||
|
@ -577,6 +577,8 @@ def test_meta_properties_meta():
|
||||||
od = OptionDescription('root', '', [interface1])
|
od = OptionDescription('root', '', [interface1])
|
||||||
conf1 = Config(od, session_id='conf1')
|
conf1 = Config(od, session_id='conf1')
|
||||||
conf2 = Config(od, session_id='conf2')
|
conf2 = Config(od, session_id='conf2')
|
||||||
|
conf1.property.read_write()
|
||||||
|
conf2.property.read_write()
|
||||||
meta = MetaConfig([conf1, conf2])
|
meta = MetaConfig([conf1, conf2])
|
||||||
meta.property.read_write()
|
meta.property.read_write()
|
||||||
assert meta.config('conf1').config.dict() == {}
|
assert meta.config('conf1').config.dict() == {}
|
||||||
|
@ -696,6 +698,8 @@ def test_meta_properties_meta_copy():
|
||||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||||
conf1 = Config(interface1, session_id='conf1')
|
conf1 = Config(interface1, session_id='conf1')
|
||||||
conf2 = Config(interface1, session_id='conf2')
|
conf2 = Config(interface1, session_id='conf2')
|
||||||
|
conf1.property.read_write()
|
||||||
|
conf2.property.read_write()
|
||||||
meta = MetaConfig([conf1, conf2])
|
meta = MetaConfig([conf1, conf2])
|
||||||
meta.property.read_write()
|
meta.property.read_write()
|
||||||
|
|
||||||
|
@ -723,6 +727,8 @@ def test_meta_properties_meta_deepcopy():
|
||||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||||
conf1 = Config(interface1, session_id='conf1')
|
conf1 = Config(interface1, session_id='conf1')
|
||||||
conf2 = Config(interface1, session_id='conf2')
|
conf2 = Config(interface1, session_id='conf2')
|
||||||
|
conf1.property.read_write()
|
||||||
|
conf2.property.read_write()
|
||||||
meta = MetaConfig([conf1, conf2])
|
meta = MetaConfig([conf1, conf2])
|
||||||
meta.permissive.set(frozenset({'hidden'}))
|
meta.permissive.set(frozenset({'hidden'}))
|
||||||
meta.property.read_write()
|
meta.property.read_write()
|
||||||
|
@ -750,6 +756,8 @@ def test_meta_properties_meta_set_value():
|
||||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||||
conf1 = Config(interface1, session_id='conf1')
|
conf1 = Config(interface1, session_id='conf1')
|
||||||
conf2 = Config(interface1, session_id='conf2')
|
conf2 = Config(interface1, session_id='conf2')
|
||||||
|
conf1.property.read_write()
|
||||||
|
conf2.property.read_write()
|
||||||
meta = MetaConfig([conf1, conf2])
|
meta = MetaConfig([conf1, conf2])
|
||||||
meta.property.read_write()
|
meta.property.read_write()
|
||||||
assert meta.config('conf1').config.dict() == {'ip_admin_eth0': ['192.168.1.1']}
|
assert meta.config('conf1').config.dict() == {'ip_admin_eth0': ['192.168.1.1']}
|
||||||
|
|
|
@ -1019,14 +1019,12 @@ class TiramisuDispatcherConfig(TiramisuDispatcher, TiramisuContextConfig):
|
||||||
path: Optional[str]):
|
path: Optional[str]):
|
||||||
"""select a child Tiramisu configuration (only with MetaConfig or GroupConfig)"""
|
"""select a child Tiramisu configuration (only with MetaConfig or GroupConfig)"""
|
||||||
if path is None:
|
if path is None:
|
||||||
return TiramisuAPI(self.config_bag)
|
return Config(self.config_bag)
|
||||||
spaths = path.split('.')
|
spaths = path.split('.')
|
||||||
config = self.config_bag.context
|
config = self.config_bag.context
|
||||||
for spath in spaths:
|
for spath in spaths:
|
||||||
config = config.getconfig(spath)
|
config = config.getconfig(spath)
|
||||||
config_bag = self.config_bag.copy()
|
return Config(config)
|
||||||
config_bag.context = config
|
|
||||||
return TiramisuAPI(config_bag)
|
|
||||||
|
|
||||||
|
|
||||||
class TiramisuDispatcherOption(TiramisuDispatcher, TiramisuContextOption):
|
class TiramisuDispatcherOption(TiramisuDispatcher, TiramisuContextOption):
|
||||||
|
@ -1050,7 +1048,7 @@ class Config(TiramisuAPI):
|
||||||
session_id: str=None,
|
session_id: str=None,
|
||||||
persistent: bool=False,
|
persistent: bool=False,
|
||||||
storage=None) -> None:
|
storage=None) -> None:
|
||||||
if not isinstance(descr, KernelConfig):
|
if not isinstance(descr, (KernelConfig, KernelMetaConfig)):
|
||||||
config = KernelConfig(descr,
|
config = KernelConfig(descr,
|
||||||
session_id=session_id,
|
session_id=session_id,
|
||||||
persistent=persistent,
|
persistent=persistent,
|
||||||
|
|
Loading…
Reference in a new issue