[Erp5-report] r41797 nicolas - /erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Dec 27 13:17:38 CET 2010
Author: nicolas
Date: Mon Dec 27 13:17:37 2010
New Revision: 41797
URL: http://svn.erp5.org?rev=41797&view=rev
Log:
Test standard Contact-US form
Added:
erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py
Added: erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py?rev=41797&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py (added)
+++ erp5/trunk/products/ERP5/tests/testERP5WebWithCRM.py [utf8] Mon Dec 27 13:17:37 2010
@@ -0,0 +1,166 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
+# Nicolas Delaby <nicolas at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+import unittest
+import transaction
+
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
+ _getConversionServerDict
+
+
+class TestERP5WebWithCRM(ERP5TypeTestCase):
+ """Test for erp5_web and erp5_crm features
+ """
+
+ def getTitle(self):
+ return "ERP5 Web with CRM"
+
+ def getBusinessTemplateList(self):
+ """
+ Return the list of required business templates.
+ """
+ return ('erp5_base',
+ 'erp5_ingestion',
+ 'erp5_ingestion_mysql_innodb_catalog',
+ 'erp5_crm',
+ 'erp5_web',
+ )
+
+ def afterSetUp(self):
+ self.login()
+ self.setSystemPreference()
+ user = self.createUser('robby')
+ self.createUserAssignment(user, {})
+
+ def setSystemPreference(self):
+ portal_type = 'System Preference'
+ preference_list = self.portal.portal_preferences.contentValues(
+ portal_type=portal_type)
+ if not preference_list:
+ preference = self.portal.portal_preferences.newContent(
+ portal_type=portal_type)
+ else:
+ preference = preference_list[0]
+ conversion_dict = _getConversionServerDict()
+ preference.setPreferredOoodocServerAddress(conversion_dict['hostname'])
+ preference.setPreferredOoodocServerPortNumber(conversion_dict['port'])
+ if self.portal.portal_workflow.isTransitionPossible(preference, 'enable'):
+ preference.enable()
+
+ def clearModule(self, module):
+ module.manage_delObjects(list(module.objectIds()))
+ transaction.commit()
+ self.tic()
+
+ def beforeTearDown(self):
+ self.clearModule(self.portal.web_site_module)
+ self.clearModule(self.portal.event_module)
+ self.clearModule(self.portal.person_module)
+
+ def setupWebSection(self, **kw):
+ """
+ Setup Web Site
+ """
+ portal = self.getPortal()
+ website = self.getPortal().web_site_module.newContent(portal_type='Web Site',
+ **kw)
+ websection = website.newContent(portal_type='Web Section', **kw)
+ website.publish()
+ transaction.commit()
+ self.tic()
+ return websection
+
+ def test_01_Contact_Us_with_Anonymous_user(self):
+ """Test creation of Web Message with Anonymous User
+ """
+ web_section = self.setupWebSection()
+ self.logout()
+ form_kw = {'source_organisation_title': 'John Doe Industries',
+ 'source_person_first_name': 'John',
+ 'source_person_last_name': 'Doe',
+ 'source_person_default_email_text': 'John.Doe at example.com',
+ 'source_person_default_telephone_text': '34343434',
+ 'description': 'I want ERP5 for my company',
+ }
+ web_section.WebSection_addWebMessage(**form_kw)
+ transaction.commit()
+ self.tic()
+
+ self.login()
+ # Now a web message has been created
+ event = self.portal.event_module.objectValues()[0]
+ for property_id, value in form_kw.iteritems():
+ self.assertEquals(event.getProperty(property_id), value)
+ self.assertEquals(event.getSourceCarrier(), web_section.getRelativeUrl())
+ self.assertTrue(event.hasStartDate())
+
+ # Trig alarm execution
+ self.portal.portal_alarms.fetch_incoming_web_message_list.activeSense()
+ transaction.commit()
+ self.tic()
+ self.assertEquals(event.getSimulationState(), 'new')
+
+ def test_02_Contact_Us_with_Aunthenticated_user(self):
+ """Test creation of Web Message with Authenticted User
+ """
+ web_section = self.setupWebSection()
+ self.logout()
+ self.login('robby')
+ form_kw = {'source_organisation_title': 'John Doe Industries',
+ 'source_person_first_name': 'John',
+ 'source_person_last_name': 'Doe',
+ 'source_person_default_email_text': 'John.Doe at example.com',
+ 'source_person_default_telephone_text': '34343434',
+ 'description': 'I want ERP5 for my company',
+ }
+ web_section.WebSection_addWebMessage(**form_kw)
+ transaction.commit()
+ self.tic()
+ self.logout()
+
+ self.login()
+ # Now a web message has been created
+ event = self.portal.event_module.objectValues()[0]
+ for property_id, value in form_kw.iteritems():
+ self.assertEquals(event.getProperty(property_id), value)
+ self.assertEquals(event.getSourceCarrier(), web_section.getRelativeUrl())
+ self.assertTrue(event.hasStartDate())
+ self.assertTrue(event.hasSource()) # User was connected
+ # he became source of event
+
+ # Trig alarm execution
+ self.portal.portal_alarms.fetch_incoming_web_message_list.activeSense()
+ transaction.commit()
+ self.tic()
+ self.assertEquals(event.getSimulationState(), 'new')
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestERP5WebWithCRM))
+ return suite
More information about the Erp5-report
mailing list