[Erp5-report] r34417 jm - in /erp5/trunk/products: ERP5Catalog/tests/ ERP5Type/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Apr 9 11:15:55 CEST 2010
Author: jm
Date: Fri Apr 9 11:15:53 2010
New Revision: 34417
URL: http://svn.erp5.org?rev=34417&view=rev
Log:
Do not use immediateReindexObject in getParentUid
Modified:
erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=34417&r1=34416&r2=34417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py [utf8] (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py [utf8] Fri Apr 9 11:15:53 2010
@@ -4038,6 +4038,42 @@
' AS catalog' % (module_uid, ),
})[0][0], module_len)
+ def test_getParentUid(self, quiet=quiet):
+ from Products.ERP5Type.Document.Person import Person
+ from Products.ERP5Type.Document.Assignment import Assignment
+ person_module = self.getPersonModule()
+
+ person = Person(person_module.generateNewId())
+ person.setDefaultReindexParameters(activate_kw={'after_tag': self.id()})
+ person = person_module[person_module._setObject(person.id, person)]
+ self.assertFalse('uid' in person.__dict__)
+ person.uid = None
+ assignment = Assignment(person.generateNewId())
+ assignment.setDefaultReindexParameters(activate_kw={'tag': self.id()})
+ assignment = person[person._setObject(assignment.id, assignment)]
+ self.assertFalse('uid' in assignment.__dict__)
+ assignment.uid = None
+ get_transaction().commit()
+
+ person_uid_list = []
+ catalog_result_list = []
+ Assignment_getParentUid = Assignment.getParentUid
+ def getParentUid(self):
+ person_uid_list.append(person.uid)
+ uid = Assignment_getParentUid(self)
+ catalog_result_list.append(len(self.portal_catalog(uid=uid)))
+ return uid
+ Assignment.getParentUid = getParentUid
+ try:
+ self.tic()
+ finally:
+ Assignment.getParentUid = Assignment_getParentUid
+ self.assertEqual(catalog_result_list[0], 0)
+ self.assertEqual(person_uid_list[0], None)
+ self.assertTrue(int(person.uid))
+ self.assertEqual(person.uid, assignment.getParentUid())
+
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestERP5Catalog))
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=34417&r1=34416&r2=34417&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Fri Apr 9 11:15:53 2010
@@ -1812,15 +1812,7 @@
for the implementation of the ZSQLCatalog based listing
of objects.
"""
- parent = self.aq_inner.aq_parent
- uid = getattr(aq_base(parent), 'uid', None)
- if uid is None:
- parent.immediateReindexObject() # Required with deferred indexing
- uid = getattr(aq_base(parent), 'uid', None)
- if uid is None:
- LOG('Failed twice getParentUid', 0, str((self.getPhysicalPath(),parent.getPhysicalPath())))
- raise DeferredCatalogError('Could neither access parent uid nor generate it', self)
- return uid
+ return self.aq_inner.aq_parent.getUid()
security.declareProtected( Permissions.AccessContentsInformation,
'getParentTitleOrId' )
More information about the Erp5-report
mailing list