From 2eb63c917b74e1f9e5bd9696e55bc3ec21916bfe Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Tue, 28 Jan 2014 09:14:56 +0100 Subject: [PATCH] active callback's slave verification --- test/test_option_calculation.py | 1 - tiramisu/option.py | 17 ++++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/test/test_option_calculation.py b/test/test_option_calculation.py index 8c73a5a..2cacf5e 100644 --- a/test/test_option_calculation.py +++ b/test/test_option_calculation.py @@ -481,7 +481,6 @@ def test_callback_master_and_slaves_slave_list(): assert cfg.val1.val2 == ['val', 'val'] cfg.val1.val1 = ['val1'] #wrong len - print cfg.val1.val2 raises(SlaveError, 'cfg.val1.val2') diff --git a/tiramisu/option.py b/tiramisu/option.py index 8556e92..7aa6ad5 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -1349,15 +1349,14 @@ class OptionDescription(BaseOption, StorageOptionDescription): raise ValueError(_('master group with wrong' ' master name for {0}' ).format(self.impl_getname())) - #FIXME debut reecriture - ##master_callback, master_callback_params = master.impl_get_callback() - #if master._callback is not None and master._callback[1] is not None: - # for key, callbacks in master._callback[1].items(): - # for callbk in callbacks: - # if isinstance(callbk, tuple): - # if callbk[0] in slaves: - # raise ValueError(_("callback of master's option shall " - # "not refered a slave's ones")) + master_callback, master_callback_params = master.impl_get_callback() + if master_callback is not None and master_callback_params is not None: + for key, callbacks in master_callback_params.items(): + for callbk in callbacks: + if isinstance(callbk, tuple): + if callbk[0] in slaves: + raise ValueError(_("callback of master's option shall " + "not refered a slave's ones")) master._master_slaves = tuple(slaves) for child in self.impl_getchildren(): if child != master: