diff --git a/product/ERP5/tests/testERP5Base.py b/product/ERP5/tests/testERP5Base.py index 049a3428444611c3d6ac16d7945d12b818fb0c12..9ab8efbb8fa62f8d771bd0d9dd23f77f49dd86bb 100644 --- a/product/ERP5/tests/testERP5Base.py +++ b/product/ERP5/tests/testERP5Base.py @@ -78,7 +78,6 @@ class TestERP5Base(ERP5TypeTestCase): self.portal_catalog = self.getCatalogTool() self.portal_preferences = self.getPreferenceTool() self.createCategories() - # self.login_as_member() def beforeTearDown(self): transaction.abort() @@ -106,12 +105,12 @@ class TestERP5Base(ERP5TypeTestCase): user = user_folder.getUserById(user_name).__of__(user_folder) newSecurityManager(None, user) - def login_as_member(self): - """Create a new member user and login. + def login_as_auditor(self): + """Create a new member user with Auditor role, and login """ user_name = 'member_user' user_folder = self.getPortal().acl_users - user_folder._doAddUser(user_name, '', ['Member', 'Author', 'Assignor'], []) + user_folder._doAddUser(user_name, '', ['Member', 'Auditor'], []) user = user_folder.getUserById(user_name).__of__(user_folder) newSecurityManager(None, user) @@ -1433,6 +1432,41 @@ class TestERP5Base(ERP5TypeTestCase): translated_portal_type='Personne')]) transaction.abort() + def test_Base_createCloneDocument(self): + module = self.portal.person_module + module.manage_permission('Add portal content', ['Member'], 0) + self.login_as_auditor() + person = module.newContent(portal_type='Person',) + self.assertEquals(1, len(module)) + person.Base_createCloneDocument() + self.assertEquals(2, len(module)) + + def test_Base_createCloneDocument_document_in_document(self): + module = self.portal.person_module + module.manage_permission('Add portal content', ['Member'], 0) + self.login_as_auditor() + person = module.newContent(portal_type='Person',) + # An address is a document, it cannot contain anything + address = person.newContent(portal_type='Address') + self.assertEquals(0, len(address.allowedContentTypes())) + + self.assertEquals(1, len(person)) + address.Base_createCloneDocument() + self.assertEquals(2, len(person)) + + def test_Base_createCloneDocument_folder_in_document(self): + module = self.portal.person_module + module.manage_permission('Add portal content', ['Member'], 0) + self.login_as_auditor() + person = module.newContent(portal_type='Person',) + bank_account = person.newContent(portal_type='Bank Account') + # A bank account is a folder, it cannot contain other documents + self.assertNotEquals(0, len(bank_account.allowedContentTypes())) + + self.assertEquals(1, len(person)) + bank_account.Base_createCloneDocument() + self.assertEquals(2, len(person)) + def getWorkflowHistory(self, document, workflow_id): return self.portal.portal_workflow.getInfoFor(ob=document, name='history', wf_id=workflow_id)