support delitem for Multi
authorEmmanuel Garette <egarette@cadoles.com>
Fri, 17 Mar 2017 20:27:42 +0000 (21:27 +0100)
committerEmmanuel Garette <egarette@cadoles.com>
Fri, 17 Mar 2017 20:27:42 +0000 (21:27 +0100)
test/test_config.py
tiramisu/value.py

index 5e76886..0114af9 100644 (file)
@@ -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():
index c886aa1..716ad30 100644 (file)
@@ -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,