diff --git a/product/ERP5/tests/testCRM.py b/product/ERP5/tests/testCRM.py index 29cd2071c58f1e138ecd9769a9ad007b9112db88..9583c99a45a334f13323d4b47f98a57af41db149 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): """