[Erp5-report] r45131 seb - in /erp5/trunk/products/ERP5Type: patches/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 6 15:49:28 CEST 2011
Author: seb
Date: Wed Apr 6 15:49:27 2011
New Revision: 45131
URL: http://svn.erp5.org?rev=45131&view=rev
Log:
getProperty('foo', d='bar') was raising attribute error if
in the past a local property 'foo' was created, then deleted
(so with _local_properties still having information about the
removed property)
Modified:
erp5/trunk/products/ERP5Type/patches/PropertyManager.py
erp5/trunk/products/ERP5Type/tests/testERP5Type.py
Modified: erp5/trunk/products/ERP5Type/patches/PropertyManager.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/PropertyManager.py?rev=45131&r1=45130&r2=45131&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/PropertyManager.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/patches/PropertyManager.py [utf8] Wed Apr 6 15:49:27 2011
@@ -68,7 +68,7 @@ def PropertyManager_getProperty(self, id
econtext = createExpressionContext(self)
return expression(econtext)
elif property_type:
- return getattr(self, id)
+ return getattr(self, id, d)
return d
def PropertyManager_getPropertyType(self, id, local_properties=False):
Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=45131&r1=45130&r2=45131&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] Wed Apr 6 15:49:27 2011
@@ -66,7 +66,8 @@ class PropertySheetTestCase(ERP5TypeTest
"""Clean up """
ttool = self.getTypesTool()
# remove all property sheet we added to type informations
- for ti_name, psheet_list in self._added_property_sheets.items():
+ for ti_name, psheet_list in getattr(self, '_added_property_sheets',
+ {}).items():
ti = ttool.getTypeInfo(ti_name)
property_sheet_set = set(ti.getTypePropertySheetList())
for psheet in psheet_list:
@@ -136,6 +137,8 @@ class TestERP5Type(PropertySheetTestCase
def beforeTearDown(self):
transaction.abort()
+ # THIS IS UGLY, WE MUST REMOVE AS SOON AS POSSIBLE, NOT COMPATIBLE
+ # WITH LIVE TEST
for module in [ self.getPersonModule(),
self.getOrganisationModule(),
self.getCategoryTool().region ]:
@@ -3075,6 +3078,15 @@ class TestERP5Type(PropertySheetTestCase
property_id_dict[property_id] = 1
self.assertEqual([], non_unique_property_id_list)
+ def testLocalProperties(self):
+ portal = self.getPortalObject()
+ person = portal.person_module.newContent(portal_type='Person')
+ person.edit(foo_property='bar')
+ self.assertEquals('bar', person.getProperty('foo_property'))
+ del person.__dict__['foo_property']
+ self.assertEquals(None, person.getProperty('foo_property'))
+ self.assertEquals(None, person.getProperty('foobar_property'))
+
class TestAccessControl(ERP5TypeTestCase):
# Isolate test in a dedicaced class in order not to break other tests
# when this one fails.
More information about the Erp5-report
mailing list