From 27912c0f251e5baeaccdbff33058d6cd48b91758 Mon Sep 17 00:00:00 2001 From: Jean-Paul Smets <jp@nexedi.com> Date: Wed, 20 Sep 2006 10:58:49 +0000 Subject: [PATCH] More fixes - more unit tests git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10208 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Base.py | 6 ++- product/ERP5Type/tests/testERP5Type.py | 54 +++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index bfb7f77fa0..4b0ea51308 100644 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -1331,17 +1331,21 @@ class Base( CopyContainer, PortalContent, ActiveObject, Historical, ERP5Property 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=()): diff --git a/product/ERP5Type/tests/testERP5Type.py b/product/ERP5Type/tests/testERP5Type.py index 595ff8981d..516ee5db24 100644 --- a/product/ERP5Type/tests/testERP5Type.py +++ b/product/ERP5Type/tests/testERP5Type.py @@ -439,6 +439,9 @@ class TestPropertySheet: 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 @@ class TestPropertySheet: 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 @@ class TestPropertySheet: 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 @@ class TestPropertySheet: 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 @@ class TestPropertySheet: 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): """ -- 2.30.9