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

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jan 20 22:01:29 CET 2010


Author: leonardo
Date: Wed Jan 20 22:01:29 2010
New Revision: 31853

URL: http://svn.erp5.org?rev=31853&view=rev
Log:
Add email lookup tests

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=31853&r1=31852&r2=31853&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testCRM.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testCRM.py [utf8] Wed Jan 20 22:01:29 2010
@@ -408,6 +408,30 @@
       file_name='postfix_mail.eml', mime_type='message/rfc822', data='Test'
       ))
 
+  def test_Base_getEntityListFromFromHeader(self):
+    expected_values = (
+      ('me at erp5.org', ['person_module/me']),
+      ('me at erp5.org, he at erp5.org', ['person_module/me', 'person_module/he']),
+      ('Sender <sender at customer.com>', ['person_module/sender']),
+      # tricks to confuse the e-mail parser:
+      # a comma in the name
+      ('"Sender," <sender at customer.com>, he at erp5.org', ['person_module/sender',
+                                                        'person_module/he']),
+      # multiple e-mails in the "Name" part that shouldn't be parsed
+      ('"me at erp5.org,sender at customer.com," <he at erp5.org>', ['person_module/he']),
+      # a < sign
+      ('"He<" <he at erp5.org>', ['person_module/he']),
+    )
+    portal = self.portal
+    Base_getEntityListFromFromHeader = portal.Base_getEntityListFromFromHeader
+    pc = self.portal.portal_catalog
+    for header, expected_paths in expected_values:
+      paths = [entity.getRelativeUrl()
+               for entity in portal.Base_getEntityListFromFromHeader(header)] 
+      self.assertEquals(paths, expected_paths,
+                        '%r should return %r, but returned %r' %
+                        (header, expected_paths, paths))
+
   def test_document_creation(self):
     # CRM email ingestion creates a Mail Message in event_module
     event = self._ingestMail('simple')
@@ -415,6 +439,11 @@
     self.assertEquals(event, self.portal.event_module.contentValues()[0])
     self.assertEquals('Mail Message', event.getPortalType())
     self.assertEquals('message/rfc822', event.getContentType())
+    # check if parsing of metadata from content is working
+    content_dict = {'source_list': ['person_module/sender'],
+                    'destination_list': ['person_module/me',
+                                         'person_module/he']}
+    self.assertEquals(event.getPropertyDictFromContent(), content_dict)
   
   def test_title(self):
     # title is found automatically, based on the Subject: header in the mail




More information about the Erp5-report mailing list