[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