[Erp5-report] r13904 - in /erp5/trunk/products/ERP5Form: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 3 17:19:35 CEST 2007
Author: kazuhiko
Date: Tue Apr 3 17:19:28 2007
New Revision: 13904
URL: http://svn.erp5.org?rev=13904&view=rev
Log:
* use a non-volatile attribute name for selection container in using persistent mapping (closes #638).
Modified:
erp5/trunk/products/ERP5Form/SelectionTool.py
erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=13904&r1=13903&r2=13904&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py Tue Apr 3 17:19:28 2007
@@ -186,14 +186,16 @@
"""
Return the selection container.
"""
- value = getattr(self, '_v_selection_data', None)
- if value is None:
- if self.isMemcachedUsed():
+ if self.isMemcachedUsed():
+ value = getattr(self, '_v_selection_data', None)
+ if value is None:
value = self.getPortalObject().portal_memcached.getMemcachedDict(key_prefix='selection_tool')
- else:
+ setattr(self, '_v_selection_data', value)
+ else:
+ value = getattr(self, '_selection_data', None)
+ if value is None:
value = PersistentMapping()
- value.set = value.__setitem__
- setattr(self, '_v_selection_data', value)
+ setattr(self, '_selection_data', value)
return value
security.declareProtected(ERP5Permissions.View, 'getSelectionFor')
@@ -220,7 +222,7 @@
user_id = self.portal_membership.getAuthenticatedMember().getUserName()
if user_id is not None:
- self.getSelectionContainer().set('%s-%s' % (user_id, selection_name), aq_base(selection_object))
+ self.getSelectionContainer()['%s-%s' % (user_id, selection_name)] = aq_base(selection_object)
return
security.declareProtected(ERP5Permissions.View, 'getSelectionParamsFor')
Modified: erp5/trunk/products/ERP5Form/tests/testSelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testSelectionTool.py?rev=13904&r1=13903&r2=13904&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testSelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/tests/testSelectionTool.py Tue Apr 3 17:19:28 2007
@@ -61,19 +61,25 @@
self.portal_selections.setSelectionFor('test_selection', Selection())
self.portal_selections.setSelectionParamsFor('test_selection', {'key':'value'})
- def testGetSelectionNameList(self, quiet=quiet, run=run_all_test):
+ def testGetSelectionContainer(self, quiet=quiet, run=run_all_test):
if not run: return
# use persistent mapping by default
self.assertEquals(['test_selection'],
self.portal_selections.getSelectionNameList())
self.assertEquals(['test_selection'],
self.portal_selections.getSelectionNames())
+ self.assert_(self.portal_selections.getSelectionContainer() is not None)
+ self.assert_(getattr(self.portal_selections, '_selection_data', None)
+ is not None)
# use memcached tool
self.portal_selections.setStorage('Memcached Tool')
self.assertEquals([],
self.portal_selections.getSelectionNameList())
self.assertEquals([],
self.portal_selections.getSelectionNames())
+ self.assert_(self.portal_selections.getSelectionContainer() is not None)
+ self.assert_(getattr(self.portal_selections, '_v_selection_data', None)
+ is not None)
def testGetSelectionFor(self, quiet=quiet, run=run_all_test):
if not run: return
More information about the Erp5-report
mailing list