diff --git a/test/test_config.py b/test/test_config.py index 5e76886..0114af9 100644 --- a/test/test_config.py +++ b/test/test_config.py @@ -227,7 +227,8 @@ def test_get_modified_values(): g3 = UnicodeOption('g3', '', u'héhé') g4 = BoolOption('g4', '', True) g5 = StrOption('g5', '') - d1 = OptionDescription('od', '', [g1, g2, g3, g4, g5]) + g6 = StrOption('g6', '', multi=True) + d1 = OptionDescription('od', '', [g1, g2, g3, g4, g5, g6]) root = OptionDescription('root', '', [d1]) config = Config(root) assert config.cfgimpl_get_values().get_modified_values() == {} @@ -235,6 +236,16 @@ def test_get_modified_values(): assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes')} config.od.g4 = True assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes'), 'od.g4': ('user', True)} + del config.od.g4 + assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes')} + config.od.g6.append() + assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes'), 'od.g6': ('user', (None,))} + config.od.g6.pop(0) + assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes'), 'od.g6': ('user', tuple())} + config.od.g6.append('3') + assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes'), 'od.g6': ('user', ('3',))} + del config.od.g6[0] + assert config.cfgimpl_get_values().get_modified_values() == {'od.g5': ('user', 'yes'), 'od.g6': ('user', tuple())} def test_has_value(): diff --git a/tiramisu/value.py b/tiramisu/value.py index c886aa1..716ad30 100644 --- a/tiramisu/value.py +++ b/tiramisu/value.py @@ -787,6 +787,9 @@ class Multi(list): raise value return value + def __delitem__(self, index): + return self.pop(index) + def _getdefaultvalue(self, index): values = self._getcontext().cfgimpl_get_values() value = values._getdefaultvalue(self.opt, self.path, True, index,