[Erp5-report] r24452 - in /erp5/trunk/products/ERP5: Tool/IdTool.py tests/testIdTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Nov 3 11:55:20 CET 2008
Author: jerome
Date: Mon Nov 3 11:55:12 2008
New Revision: 24452
URL: http://svn.erp5.org?rev=24452&view=rev
Log:
use random.getrandbits for IdTool.generateNewLongId, the previous implementation was not compatible with zope >= 2.8
Modified:
erp5/trunk/products/ERP5/Tool/IdTool.py
erp5/trunk/products/ERP5/tests/testIdTool.py
Modified: erp5/trunk/products/ERP5/Tool/IdTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/IdTool.py?rev=24452&r1=24451&r2=24452&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/IdTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Tool/IdTool.py [utf8] Mon Nov 3 11:55:12 2008
@@ -26,6 +26,7 @@
#
##############################################################################
+import random
from Acquisition import aq_base
from AccessControl import ClassSecurityInfo
from Globals import InitializeClass, DTMLFile, PersistentMapping
@@ -129,13 +130,10 @@
'generateNewLongId')
def generateNewLongId(self, **kw):
"""
- Returns the ZODB transation id to be used as an identifier.
+ Returns a random 64bits long.
It's a 64bits number, so it can look ugly and/or huge to users.
"""
- tid = get_transaction()._id;
- # It's a 64 bits number, but sometimes it returns as a negative int... so
- # make it positive again and add 2**63.
- return (tid < 0) and (2**63 - tid) or tid;
+ return random.getrandbits(64)
security.declareProtected(Permissions.AccessContentsInformation,
'getDictLengthIdsItems')
Modified: erp5/trunk/products/ERP5/tests/testIdTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testIdTool.py?rev=24452&r1=24451&r2=24452&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testIdTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testIdTool.py [utf8] Mon Nov 3 11:55:12 2008
@@ -1,5 +1,5 @@
##############################################################################
-#
+# -*- coding: latin1 -*-
# Copyright (c) 2008 Nexedi SARL and Contributors. All Rights Reserved.
# Aur�en Calonne <aurel at nexedi.com>
#
@@ -119,6 +119,11 @@
default='A',
method=generateTestNumber))
+ def test_generateNewLongId(self):
+ idtool = self.portal.portal_ids
+ # test with value stored into zodb
+ new_id = idtool.generateNewLongId()
+ self.assertTrue(isinstance(new_id, long))
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list