[Erp5-report] r17055 - /erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Oct 19 17:28:46 CEST 2007
Author: romain
Date: Fri Oct 19 17:28:45 2007
New Revision: 17055
URL: http://svn.erp5.org?rev=17055&view=rev
Log:
Test indexation of Owner role.
Modified:
erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=17055&r1=17054&r2=17055&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Fri Oct 19 17:28:45 2007
@@ -1867,6 +1867,156 @@
self.assertEquals([], [x.getObject() for x in
obj.searchFolder(portal_type='Bank Account')])
+ def test_60_OwnerIndexing(self, quiet=quiet, run=run_all_test):
+ if not run:
+ return
+
+ login = PortalTestCase.login
+ logout = self.logout
+ uf = self.getPortal().acl_users
+ uf._doAddUser('super_owner', '', ['Member', 'Author', 'Assignee'], [])
+ uf._doAddUser('little_owner', '', ['Member', 'Author'], [])
+
+ perm = 'View'
+ folder = self.getOrganisationModule()
+ portal_type = 'Organisation'
+ sub_portal_type_id = 'Address'
+ sub_portal_type = self.getPortal().portal_types._getOb(sub_portal_type_id)
+
+ sql_connection = self.getSQLConnection()
+ sql = 'select owner from catalog where uid=%s'
+
+ login(self, 'super_owner')
+
+ # Check that Owner is not catalogued if he can't view the object
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, [], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % obj.getUid())
+ self.assertSameSet([None], [x.owner for x in result])
+
+ # Check that Owner is catalogued when he can view the object
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % obj.getUid())
+ self.assertSameSet(['super_owner'], [x.owner for x in result])
+
+ # Check that Owner is not catalogued when he can view the
+ # object because he has another role
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Assignee'], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % obj.getUid())
+ self.assertSameSet([None], [x.owner for x in result])
+
+ # Check that Owner is not catalogued when he can't view the
+ # object and when the portal type does not acquire the local roles.
+ sub_portal_type.acquire_local_roles = False
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, [], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet([None], [x.owner for x in result])
+
+ # Check that Owner is catalogued when he can view the
+ # object and when the portal type does not acquire the local roles.
+ sub_portal_type.acquire_local_roles = False
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, ['Owner'], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet(['little_owner'], [x.owner for x in result])
+
+ # Check that Owner is catalogued when he can view the
+ # object because permissions are acquired and when the portal type does not
+ # acquire the local roles.
+ sub_portal_type.acquire_local_roles = False
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, [], 1)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet(['little_owner'], [x.owner for x in result])
+
+ # Check that Owner is not catalogued when he can't view the
+ # object and when the portal type acquires the local roles.
+ sub_portal_type.acquire_local_roles = True
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, [], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet([None], [x.owner for x in result])
+
+ # Check that Owner is catalogued when he can view the
+ # object and when the portal type acquires the local roles.
+ sub_portal_type.acquire_local_roles = True
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, ['Owner'], 0)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet(['little_owner'], [x.owner for x in result])
+
+ # Check that Owner is catalogued when he can view the
+ # object because permissions are acquired and when the portal type
+ # acquires the local roles.
+ sub_portal_type.acquire_local_roles = True
+ self.portal.portal_caches.clearAllCache()
+ logout()
+ login(self, 'super_owner')
+ obj = folder.newContent(portal_type='Organisation')
+ obj.manage_permission(perm, ['Owner'], 0)
+ logout()
+ login(self, 'little_owner')
+ sub_obj = obj.newContent(portal_type='Address')
+ sub_obj.manage_permission(perm, [], 1)
+ get_transaction().commit()
+ self.tic()
+ result = sql_connection.manage_test(sql % sub_obj.getUid())
+ self.assertSameSet(['little_owner'], [x.owner for x in result])
+
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list