[Erp5-report] r43757 nicolas - /erp5/trunk/products/ERP5/tests/testCRM.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Feb 25 15:59:54 CET 2011
Author: nicolas
Date: Fri Feb 25 15:59:54 2011
New Revision: 43757
URL: http://svn.erp5.org?rev=43757&view=rev
Log:
Check Base_addEvent
Modified:
erp5/trunk/products/ERP5/tests/testCRM.py
Modified: erp5/trunk/products/ERP5/tests/testCRM.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testCRM.py?rev=43757&r1=43756&r2=43757&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testCRM.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testCRM.py [utf8] Fri Feb 25 15:59:54 2011
@@ -55,6 +55,7 @@ organisation_module
person_module
sale_opportunity_module
portal_categories/resource
+portal_categories/function
""".strip().splitlines()
class BaseTestCRM(ERP5TypeTestCase):
@@ -1457,6 +1458,147 @@ class TestCRMMailSend(BaseTestCRM):
self.assertEquals(new_event.getTitle(), real_title)
self.assertEquals(new_event.getTextContent(), real_content)
+ def test_Base_addEvent(self):
+ """Check Base_addEvent script with a logged in user.
+ """
+ # create categories.
+ resource = self.portal.portal_categories.resource
+ for i in range(3):
+ resource.newContent(portal_type='Category',
+ title='Title%s' % i,
+ id=i)
+ self.portal.portal_categories.function.newContent(portal_type='Category',
+ id='crm_agent')
+ # create user and configure security settings
+ portal_type_list = self.portal.getPortalEventTypeList()\
+ + self.portal.getPortalEntityTypeList()\
+ + ('Event Module',)
+ for portal_type in portal_type_list:
+ portal_type_object = getattr(self.portal.portal_types, portal_type)
+ portal_type_object.newContent(id='manager_role',
+ portal_type='Role Information',
+ role_name_list=('Manager',),
+ role_category_list='function/crm_agent')
+ portal_type_object.updateRoleMapping()
+ user = self.createSimpleUser('Agent', 'crm_agent', 'crm_agent')
+ transaction.commit()
+ self.tic()
+ try:
+ # create entites
+ organisation_portal_type = 'Organisation'
+ person_portal_type = 'Person'
+ my_company = self.portal.getDefaultModule(organisation_portal_type)\
+ .newContent(portal_type=organisation_portal_type,
+ title='Software provider')
+ organisation = self.portal.getDefaultModule(organisation_portal_type)\
+ .newContent(portal_type=organisation_portal_type,
+ title='Soap Service Express')
+ person = self.portal.getDefaultModule(person_portal_type).newContent(
+ portal_type=person_portal_type,
+ first_name='John',
+ last_name='Doe',
+ default_email_text='john.doe at example.com',
+ default_career_subordination_value=organisation)
+ another_person = self.portal.getDefaultModule(person_portal_type)\
+ .newContent(portal_type=person_portal_type,
+ first_name='Jane',
+ last_name='Doe',
+ default_email_text='jane.doe at example.com',
+ default_career_subordination_value=organisation)
+ user.setDefaultCareerSubordinationValue(my_company)
+ # log in user
+ self.login('crm_agent')
+
+ ### Incoming on Person ###
+ # Submit the dialog on person
+ title = 'Incoming email'
+ direction = 'in'
+ portal_type = 'Note'
+ resource = resource['1'].getRelativeUrl()
+ person.Base_addEvent(title, direction, portal_type, resource)
+
+ # Index Event
+ transaction.commit()
+ self.tic()
+
+ # check created Event
+ event = person.getSourceRelatedValue()
+ self.assertEquals(event.getTitle(), title)
+ self.assertEquals(event.getResource(), resource)
+ self.assertTrue(event.hasStartDate())
+ self.assertEquals(event.getSource(), person.getRelativeUrl())
+ self.assertEquals(event.getSourceSection(),
+ organisation.getRelativeUrl())
+ self.assertEquals(event.getDestination(), user.getRelativeUrl())
+ self.assertEquals(event.getDestinationSection(), user.getSubordination())
+
+ ### Outgoing on Person ###
+ # Check another direction
+ title = 'Outgoing email'
+ direction = 'out'
+ another_person.Base_addEvent(title, direction, portal_type, resource)
+
+ # Index Event
+ transaction.commit()
+ self.tic()
+
+ # check created Event
+ event = another_person.getDestinationRelatedValue()
+ self.assertEquals(event.getTitle(), title)
+ self.assertEquals(event.getResource(), resource)
+ self.assertTrue(event.hasStartDate())
+ self.assertEquals(event.getDestination(),
+ another_person.getRelativeUrl())
+ self.assertEquals(event.getDestinationSection(),
+ organisation.getRelativeUrl())
+ self.assertEquals(event.getSource(), user.getRelativeUrl())
+ self.assertEquals(event.getSourceSection(), user.getSubordination())
+
+ ### Outgoing on Organisation ###
+ # check on Organisation
+ event = organisation.Base_addEvent(title, direction,
+ portal_type, resource)
+
+ # Index Event
+ transaction.commit()
+ self.tic()
+
+ # check created Event
+ event = organisation.getDestinationSectionRelatedValue()
+ self.assertEquals(event.getTitle(), title)
+ self.assertEquals(event.getResource(), resource)
+ self.assertTrue(event.hasStartDate())
+ self.assertEquals(event.getDestination(),
+ organisation.getRelativeUrl())
+ self.assertEquals(event.getDestinationSection(),
+ organisation.getRelativeUrl())
+ self.assertEquals(event.getSource(), user.getRelativeUrl())
+ self.assertEquals(event.getSourceSection(), user.getSubordination())
+
+ ### Outgoing on Career ###
+ # Now check Base_addEvent on any document (follow_up)
+ career = person.default_career
+ career.Base_addEvent(title, direction, portal_type, resource)
+
+ # Index Event
+ transaction.commit()
+ self.tic()
+
+ # check created Event
+ event = career.getFollowUpRelatedValue()
+ self.assertEquals(event.getTitle(), title)
+ self.assertEquals(event.getResource(), resource)
+ self.assertTrue(event.hasStartDate())
+ self.assertEquals(event.getSource(), user.getRelativeUrl())
+ self.assertEquals(event.getSourceSection(), user.getSubordination())
+ finally:
+ # clean up created roles on portal_types
+ for portal_type in portal_type_list:
+ portal_type_object = getattr(self.portal.portal_types, portal_type)
+ portal_type_object._delObject('manager_role')
+ portal_type_object.updateRoleMapping()
+ transaction.commit()
+ self.tic()
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list