From 58325e4824c412081f301b469eaa6ec26d6d9fce Mon Sep 17 00:00:00 2001
From: Nicolas Delaby <nicolas@nexedi.com>
Date: Thu, 16 Dec 2010 11:01:34 +0000
Subject: [PATCH] * Run activities after ingestion.   Because discoverMedata
 may change the portal_type of ingested Event. * Get the last event according
 creation_date * It has been decided to no hide portal_type added in Subject
 or in Body parts of message.   getTitle() == 'Visit:Company A' even if
 'Visit:' is a keyword to help contribution_tool   to Construct Visit
 portal_type during ingestion process.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@41493 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testCRM.py | 54 ++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 16 deletions(-)

diff --git a/product/ERP5/tests/testCRM.py b/product/ERP5/tests/testCRM.py
index 29cd2071c5..9583c99a45 100644
--- a/product/ERP5/tests/testCRM.py
+++ b/product/ERP5/tests/testCRM.py
@@ -573,63 +573,85 @@ class TestCRMMailIngestion(BaseTestCRM):
     Make sure that ingested email will be correctly converted to
     appropriate portal type by email metadata.
     """
+    def getLastCreatedEvent(module):
+      object_list = module.contentValues()
+      object_list.sort(key=lambda e:e.getCreationDate())
+      return object_list[-1]
+
+    portal = self.portal
     message = email.message_from_string(self._readTestData('simple'))
     message.replace_header('subject', 'Visit:Company A')
     data = message.as_string()
-    document = self._ingestMail(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = portal.event_module[portal.event_module.objectIds()[-1]]
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), '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(data=data)
+    self._ingestMail(data=data)
+    transaction.commit()
+    self.tic()
+    document = getLastCreatedEvent(portal.event_module)
     self.assertEqual(document.getPortalType(), 'Phone Call')
-    self.assertEqual(document.getTextContent(), body)
 
   def test_forwarder_mail(self):
     """
-- 
2.30.9