[Erp5-report] r10208 - in /erp5/trunk/products/ERP5Type: Base.py tests/testERP5Type.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Sep 20 12:58:52 CEST 2006
Author: jp
Date: Wed Sep 20 12:58:49 2006
New Revision: 10208
URL: http://svn.erp5.org?rev=10208&view=rev
Log:
More fixes - more unit tests
Modified:
erp5/trunk/products/ERP5Type/Base.py
erp5/trunk/products/ERP5Type/tests/testERP5Type.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=10208&r1=10207&r2=10208&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Wed Sep 20 12:58:49 2006
@@ -1331,17 +1331,21 @@
security.declareProtected( Permissions.ModifyPortalContent, '_setDefaultValue' )
def _setDefaultValue(self, id, target, spec=(), filter=None, portal_type=()):
+ start_string = "%s/" % id
+ start_string_len = len(start_string)
if target is None :
path = target
elif isinstance(target, str):
# We have been provided a string
path = target
+ if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
else:
# We have been provided an object
# Find the object
path = target.getRelativeUrl()
+ if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
self._setDefaultCategoryMembership(id, path, spec=spec, filter=filter,
- portal_type=portal_type, base=1)
+ portal_type=portal_type, base=0)
security.declareProtected( Permissions.ModifyPortalContent, 'setDefaultValue' )
def setDefaultValue(self, id, target, spec=(), filter=None, portal_type=()):
Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=10208&r1=10207&r2=10208&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py Wed Sep 20 12:58:49 2006
@@ -439,6 +439,9 @@
from Products.ERP5Type.Utils import ConstraintNotFound
organisation = self.assertRaises(ConstraintNotFound,folder.newContent,
portal_type='Organisation')
+ # Cleanup for next test
+ organisation_portal_type.setPropertySheetList([])
+ _aq_reset()
def test_11_valueAccessor(self, quiet=quiet, run=run_all_test):
"""
@@ -475,20 +478,30 @@
portal_type = "Category",
id = "zeta",
title = "Zeta System", )
+ function_category = self.getPortal().portal_categories.function
+ nofunction = function_category.newContent(
+ portal_type = "Category",
+ id = "nofunction",
+ title = "No Function", )
self.assertEquals(alpha.getRelativeUrl(), 'region/alpha')
- #get_transaction().commit()
- alpha.immediateReindexObject()
- beta.immediateReindexObject()
- zeta.immediateReindexObject()
- #self.tic() # Make sure categories are reindexed
+ alpha.reindexObject()
+ beta.reindexObject()
+ zeta.reindexObject()
+ nofunction.reindexObject()
+ get_transaction().commit()
+ self.tic() # Make sure categories are reindexed
# Create a new person
module = self.getPersonModule()
person = module.newContent(portal_type='Person')
# Value setters (list, set, default)
+ person.setFunction('nofunction') # Fill at least one other category
+ person.setDefaultRegionValue(alpha)
+ self.assertEquals(person.getDefaultRegion(), 'alpha')
+ self.assertEquals(person.getRegion(), 'alpha')
person.setRegionValue(alpha)
self.assertEquals(person.getRegion(), 'alpha')
person.setRegionValueList([alpha, alpha])
@@ -513,8 +526,19 @@
result.sort()
self.assertEquals(result, ['alpha', 'beta'])
self.assertEquals(person.getRegionList(), ['alpha', 'beta'])
+ # Test accessor on documents rather than on categories
+ person.setDefaultRegionValue(person)
+ self.assertEquals(person.getDefaultRegion(), person.getRelativeUrl())
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
+ person.setRegionValue([person, alpha, beta])
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
# Category setters (list, set, default)
+ person = module.newContent(portal_type='Person')
+ person.setFunction('nofunction') # Fill at least one other category
+ person.setDefaultRegion('alpha')
+ self.assertEquals(person.getRegion(), 'alpha')
+ self.assertEquals(person.getDefaultRegion(), 'alpha')
person.setRegion('alpha')
self.assertEquals(person.getRegion(), 'alpha')
person.setRegionList(['alpha', 'alpha'])
@@ -539,8 +563,22 @@
result.sort()
self.assertEquals(result, ['alpha', 'beta'])
self.assertEquals(person.getRegionList(), ['alpha', 'beta'])
+ # Test accessor on documents rather than on categories
+ person.setDefaultRegion(person.getRelativeUrl())
+ self.assertEquals(person.getDefaultRegion(), person.getRelativeUrl())
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
+ person.setRegion([person.getRelativeUrl(), 'alpha', 'beta'])
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
# Uid setters (list, set, default)
+ person = module.newContent(portal_type='Person')
+ person.reindexObject()
+ get_transaction().commit()
+ self.tic() # Make sure person is reindexed
+ person.setFunction('nofunction') # Fill at least one other category
+ person.setDefaultRegionUid(alpha.getUid())
+ self.assertEquals(person.getRegion(), 'alpha')
+ self.assertEquals(person.getDefaultRegion(), 'alpha')
person.setRegionUid(alpha.getUid())
self.assertEquals(person.getRegion(), 'alpha')
person.setRegionUidList([alpha.getUid(), alpha.getUid()])
@@ -565,6 +603,12 @@
result.sort()
self.assertEquals(result, ['alpha', 'beta'])
self.assertEquals(person.getRegionList(), ['alpha', 'beta'])
+ # Test accessor on documents rather than on categories
+ person.setDefaultRegionUid(person.getUid())
+ self.assertEquals(person.getDefaultRegion(), person.getRelativeUrl())
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
+ person.setRegionUid([person.getUid(), alpha.getUid(), beta.getUid()])
+ self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
def test_12_listAccessor(self, quiet=quiet, run=run_all_test):
"""
More information about the Erp5-report
mailing list