[Erp5-report] r20338 - /erp5/trunk/products/ERP5Type/tests/testERP5Type.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 8 11:20:56 CEST 2008
Author: romain
Date: Tue Apr 8 11:20:56 2008
New Revision: 20338
URL: http://svn.erp5.org?rev=20338&view=rev
Log:
Check that creating a temp_object do not write data in ZODB.
Currently, when calling newContent with parameter temp_object=1, container last
ID is modified, and it leads to ConflictError (when using Domain for example).
Modified:
erp5/trunk/products/ERP5Type/tests/testERP5Type.py
Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=20338&r1=20337&r2=20338&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py Tue Apr 8 11:20:56 2008
@@ -289,6 +289,32 @@
self.assertEquals(a.isTempObject(), 1)
self.logout()
self.login()
+
+ # Check that temp object creation do not write in the ZODB
+ class WriteError(Exception):
+ pass
+ def _setLastId(self, id):
+ raise WriteError
+ portal.person_module.__class__._setLastId = _setLastId
+ try:
+ try:
+ o = portal.person_module.newContent(portal_type="Person",
+ temp_object=1)
+ except WriteError:
+ raise self.failureException, "Container last ID modified"
+ finally:
+ delattr(portal.person_module.__class__, '_setLastId')
+
+ # Check that creating 2 consecutive temp object automatically increases
+ # their ID
+ o = portal.person_module.newContent(portal_type="Person",
+ temp_object=1)
+ first_id = o.getId()
+ o = portal.person_module.newContent(portal_type="Person",
+ temp_object=1)
+ second_id = o.getId()
+ self.assertNotEquals(first_id, second_id)
+ self.assertEquals(str(int(first_id) + 1), second_id)
def test_04_CategoryAccessors(self, quiet=quiet, run=run_all_test):
"""
More information about the Erp5-report
mailing list