[CMF-checkins] SVN: CMF/trunk/GenericSetup/ Correctly purge
non-deletable int/float propertie.
Florent Guillaume
fg at nuxeo.com
Mon Jan 2 10:44:10 EST 2006
Log message for revision 41080:
Correctly purge non-deletable int/float propertie.
Changed:
U CMF/trunk/GenericSetup/CHANGES.txt
U CMF/trunk/GenericSetup/tests/test_utils.py
U CMF/trunk/GenericSetup/utils.py
-=-
Modified: CMF/trunk/GenericSetup/CHANGES.txt
===================================================================
--- CMF/trunk/GenericSetup/CHANGES.txt 2006-01-02 11:35:03 UTC (rev 41079)
+++ CMF/trunk/GenericSetup/CHANGES.txt 2006-01-02 15:44:09 UTC (rev 41080)
@@ -11,7 +11,8 @@
- Forward ported changes from GenericSetup 0.11 and 0.12 (which were
created in a separate repository).
- - Don't export or purge read-only properties.
+ - Don't export or purge read-only properties. Correctly purge
+ non-deletable int/float properties.
- Correctly quote XML on export.
Modified: CMF/trunk/GenericSetup/tests/test_utils.py
===================================================================
--- CMF/trunk/GenericSetup/tests/test_utils.py 2006-01-02 11:35:03 UTC (rev 41079)
+++ CMF/trunk/GenericSetup/tests/test_utils.py 2006-01-02 15:44:09 UTC (rev 41080)
@@ -41,6 +41,9 @@
<property name="foo_mselection" select_variable="foobarbaz"
type="multiple selection"/>
<property name="foo_boolean0" type="boolean">False</property>
+ <property name="foo_int_nodel">0</property>
+ <property name="foo_float_nodel">0.0</property>
+ <property name="foo_boolean_nodel">False</property>
</dummy>
"""
@@ -71,6 +74,9 @@
<element value="Baz"/>
</property>
<property name="foo_boolean0" type="boolean">False</property>
+ <property name="foo_int_nodel">1789</property>
+ <property name="foo_float_nodel">3.1415</property>
+ <property name="foo_boolean_nodel">True</property>
</dummy>
"""
@@ -99,6 +105,9 @@
<element value="Baz"/>
</property>
<property name="foo_boolean0">False</property>
+ <property name="foo_int_nodel">1789</property>
+ <property name="foo_float_nodel">3.1415</property>
+ <property name="foo_boolean_nodel">True</property>
</dummy>
"""
@@ -198,6 +207,8 @@
obj = PropertyManager('obj')
obj.foobarbaz = ('Foo', 'Bar', 'Baz')
obj._properties = ()
+ # XXX Some intializations are dubious, _setProperty doesn't do any
+ # XXX type conversion and will store empty strings as defaults.
obj._setProperty('foo_boolean', '', 'boolean')
obj._setProperty('foo_date', '', 'date')
obj._setProperty('foo_float', '', 'float')
@@ -212,6 +223,12 @@
obj._setProperty('foo_boolean0', '', 'boolean')
obj._setProperty('foo_ro', '', 'string')
obj._properties[-1]['mode'] = '' # Read-only, not exported or purged
+ obj._setProperty('foo_int_nodel', 0, 'int')
+ obj._properties[-1]['mode'] = 'w' # Not deletable
+ obj._setProperty('foo_float_nodel', 0.0, 'float')
+ obj._properties[-1]['mode'] = 'w' # Not deletable
+ obj._setProperty('foo_boolean_nodel', False, 'boolean')
+ obj._properties[-1]['mode'] = 'w' # Not deletable
self.helpers = self._makeOne(obj, DummySetupEnviron())
def _populate(self, obj):
@@ -228,6 +245,9 @@
obj._updateProperty( 'foo_mselection', ('Foo', 'Baz') )
obj.foo_boolean0 = 0
obj._updateProperty('foo_ro', 'RO')
+ obj._updateProperty('foo_int_nodel', '1789')
+ obj._updateProperty('foo_float_nodel', '3.1415')
+ obj._updateProperty('foo_boolean_nodel', 'True')
def test__extractProperties_empty(self):
doc = self.helpers._doc = PrettyDocument()
Modified: CMF/trunk/GenericSetup/utils.py
===================================================================
--- CMF/trunk/GenericSetup/utils.py 2006-01-02 11:35:03 UTC (rev 41079)
+++ CMF/trunk/GenericSetup/utils.py 2006-01-02 15:44:09 UTC (rev 41080)
@@ -643,8 +643,11 @@
if 'd' in mode and not prop_id == 'title':
self.context._delProperty(prop_id)
else:
- if prop_map.get('type') == 'multiple selection':
+ prop_type = prop_map.get('type')
+ if prop_type == 'multiple selection':
prop_value = ()
+ elif prop_type in ('int', 'float'):
+ prop_value = 0
else:
prop_value = ''
self.context._updateProperty(prop_id, prop_value)
More information about the CMF-checkins
mailing list