[Erp5-report] r20237 - /erp5/trunk/products/ERP5/tests/testCRM.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 31 20:01:16 CEST 2008


Author: yusei
Date: Mon Mar 31 20:01:16 2008
New Revision: 20237

URL: http://svn.erp5.org?rev=20237&view=rev
Log:
Added a new test.

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=20237&r1=20236&r2=20237&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testCRM.py (original)
+++ erp5/trunk/products/ERP5/tests/testCRM.py Mon Mar 31 20:01:16 2008
@@ -273,10 +273,15 @@
     get_transaction().commit()
     self.tic()
 
-  def _ingestMail(self, filename):
+  def _readTestData(self, filename):
+    """read test data from data directory."""
+    return file(os.path.join(os.path.dirname(__file__),
+                             'test_data', 'crm_emails', filename)).read()
+
+  def _ingestMail(self, filename=None, data=None):
     """ingest an email from the mail in data dir named `filename`"""
-    data = file(os.path.join(os.path.dirname(__file__),
-                  'test_data', 'crm_emails', filename)).read()
+    if data is None:
+      data=self._readTestData(filename)
     return self.portal.portal_contributions.newContent(
                     portal_type='Mail Message',
                     container_path='event_module',
@@ -334,8 +339,70 @@
     get_transaction().commit()
     self.tic()
     self.assertEquals(None, event.getFollowUp())
- 
- 
+
+  def test_portal_type_determination(self):
+    """
+    Make sure that ingested email will be correctly converted to
+    appropriate portal type by email metadata.
+    """
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'Visit:Company A')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Visit')
+    self.assertEqual(document.getTitle(), 'Company A')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'Fax:Company B')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Fax Message')
+    self.assertEqual(document.getTitle(), 'Company B')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'TEST:Company B')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Mail Message')
+    self.assertEqual(document.getTitle(), 'TEST:Company B')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'visit:Company A')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Visit')
+    self.assertEqual(document.getTitle(), 'Company A')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'phone:Company B')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Phone Call')
+    self.assertEqual(document.getTitle(), 'Company B')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    message.replace_header('subject', 'LETTER:Company C')
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Letter')
+    self.assertEqual(document.getTitle(), 'Company C')
+
+    message = email.message_from_string(self._readTestData('simple'))
+    body = message.get_payload()
+    message.set_payload('Visit:%s' % body)
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Visit')
+    self.assertEqual(document.getTextContent(), body)
+
+    message = email.message_from_string(self._readTestData('simple'))
+    body = message.get_payload()
+    message.set_payload('PHONE CALL:%s' % body)
+    data = message.as_string()
+    document = self._ingestMail(self, data=data)
+    self.assertEqual(document.portal_type, 'Phone Call')
+    self.assertEqual(document.getTextContent(), body)
+
 ## TODO:
 ##  def test_forwarder_mail(self):
 ##    # if there is a forwarded email, import the forwarded email




More information about the Erp5-report mailing list