[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