[Erp5-report] r18252 - in /erp5/trunk/products/ERP5OOo/tests: ./ test_document/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Dec 11 18:37:05 CET 2007


Author: yusei
Date: Tue Dec 11 18:37:04 2007
New Revision: 18252

URL: http://svn.erp5.org?rev=18252&view=rev
Log:
Update test for new email ingestion system.

Modified:
    erp5/trunk/products/ERP5OOo/tests/testIngestion.py
    erp5/trunk/products/ERP5OOo/tests/test_document/email_from.txt

Modified: erp5/trunk/products/ERP5OOo/tests/testIngestion.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testIngestion.py?rev=18252&r1=18251&r2=18252&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testIngestion.py (original)
+++ erp5/trunk/products/ERP5OOo/tests/testIngestion.py Tue Dec 11 18:37:04 2007
@@ -91,8 +91,8 @@
     """
       Return the list of required business templates.
     """
-    return ('erp5_base', 'erp5_web', 'erp5_dms_mysql_innodb_catalog', 'erp5_dms')
-    #return ('erp5_base', 'erp5_trade', 'erp5_project', 'erp5_dms')
+    return ('erp5_base', 'erp5_web', 'erp5_crm',
+            'erp5_dms_mysql_innodb_catalog', 'erp5_dms')
 
   def afterSetUp(self, quiet=QUIET, run=RUN_ALL_TEST):
     """
@@ -105,32 +105,11 @@
     self.portal_catalog = self.getCatalogTool()
     self.createDefaultCategoryList()
     self.setSystemPreference()
-    self.createTools()
     self.setSimulatedNotificationScript()
+    self.setTools()
 
   def beforeTearDown(self):
     self.portal.portal_caches.clearAllCache()
-
-  def createTools(self):
-    """
-      Set up missing portal_mailin tool.
-    """
-    # Delete and create portal_contributions
-    #try:
-    #  self.portal._delObject('portal_contributions')
-    #except AttributeError:
-    #  pass
-    #addTool = self.portal.manage_addProduct['ERP5'].manage_addTool
-    #addTool('ERP5 Contribution Tool', None)
-    # Delete and create portal_mailin
-    try:
-      self.portal._delObject('portal_mailin')
-    except AttributeError:
-      pass
-    addTool = self.portal.manage_addProduct['CMFMailIn'].manage_addTool
-    addTool('CMF Mail In Tool', None)
-    mailin = self.portal.portal_mailin
-    mailin.edit_configuration('Document_ingestEmail')
 
   def setSystemPreference(self):
     default_pref = self.portal.portal_preferences.default_site_preference
@@ -152,6 +131,13 @@
     script = getattr(context, script_id)
     script.ZPythonScript_edit('email_to, event, doc, **kw', 'return')
 
+  def setTools(self):
+    # XXX FIX ME
+    # XXX We should use business template to install these tools.(Yusei)
+    if getattr(self.portal, 'mimetypes_registry', None) is None:
+      self.portal.manage_addProduct['MimetypesRegistry'].manage_addTool(type='MimeTypes Registry')
+    if getattr(self.portal, 'portal_transforms', None) is None:
+      self.portal.manage_addProduct['PortalTransforms'].manage_addTool(type='Portal Transforms')
 
   ##################################
   ##  Useful methods
@@ -447,6 +433,15 @@
     for k, v in expected_metadata.items():
       self.assertEquals(context.getProperty(k), v)
 
+  def receiveEmail(self, data,
+                   portal_type='Document Ingestion Message',
+                   container_path='document_ingestion_module',
+                   file_name='email.emx'):
+    return self.portal.portal_contributions.newContent(data=data,
+                                                       portal_type=portal_type,
+                                                       container_path=container_path,
+                                                       file_name=file_name)
+
   ##################################
   ##  Basic steps
   ##################################
@@ -459,16 +454,21 @@
       Create a person with ID "john" if it does not exists already
     """
     portal_type = 'Person'
-    id = 'john'
+    person_id = 'john'
     reference = 'john_doe'
     person_module = self.portal.person_module
-    if getattr(person_module, 'john', False): return 
-    person = person_module.newContent( portal_type='Person'
-                                     , id=id
-                                     ,  reference = reference
-                                     )
+    if getattr(person_module, person_id, None) is not None:
+      return
+    person = person_module.newContent(portal_type='Person',
+                                      id=person_id,
+                                      reference=reference,
+                                      first_name='John',
+                                      last_name='Doe'
+                                      )
     person.setDefaultEmailText('john at doe.com')
-    person.reindexObject(); get_transaction().commit(); self.tic()
+    person.reindexObject()
+    get_transaction().commit()
+    self.tic()
 
   def stepCreateTextDocument(self, sequence=None, sequence_list=None, **kw):
     """
@@ -792,7 +792,7 @@
         Clean up DMS system from old content.
     """
     portal = self.getPortal()
-    for module in (portal.document_module, portal.image_module,):
+    for module in (portal.document_module, portal.image_module, portal.document_ingestion_module):
       module.manage_delObjects(map(None, module.objectIds()))
     
   def stepContributeFileListWithType(self, sequence=None, sequence_list=None, **kw):
@@ -872,23 +872,17 @@
     """
       email was sent in by someone who is not in the person_module
     """
-    self.failUnless(hasattr(self.portal, 'portal_mailin'))
     f = open(makeFilePath('email_from.txt'))
-    res = self.portal.portal_mailin.postMailMessage(f.read())
-    # we check if the mailin returned anything - it should return a message saying that the recipient does not exist
-    # the exact wording may differ
-    # the way mailin works is that if mail was accepted it returns None
-    self.failUnless(res)  
+    document = self.receiveEmail(data=f.read())
+    get_transaction().commit()
+    self.tic()
 
   def stepReceiveEmailFromJohn(self, sequence=None, sequence_list=None, **kw):
     """
       email was sent in by someone who is in the person_module
     """
-    self.failUnless(hasattr(self.portal, 'portal_mailin'))
     f = open(makeFilePath('email_from.txt'))
-    res = self.portal.portal_mailin.postUTF8MailMessage(f.read())
-    printAndLog(res)
-    self.failIf(res)  
+    document = self.receiveEmail(f.read())
     get_transaction().commit()
     self.tic()
 
@@ -897,15 +891,24 @@
       find the newly mailed-in document by its reference
       check its properties
     """
-    res = self.portal_catalog(reference='MAIL')
-    self.assertEquals(len(res), 1) # check if it is there
-    document = res[0].getObject()
-    john_is_owner = 0
-    for role in document.get_local_roles():
-      if role[0] == 'john_doe' and 'Owner' in role[1]:
-        john_is_owner = 1
-        break
-    self.failUnless(john_is_owner)
+    # First, check document ingestion message
+    result = self.portal_catalog(portal_type='Document Ingestion Message',
+                                 title='A Test Mail',
+                                 source_title='John Doe'
+                                 )
+    self.assertEqual(len(result), 1)
+    ingestion_message = result[0].getObject()
+
+    # Second, check attachments
+    attachment_list = ingestion_message.getAggregateValueList()
+    self.assertEqual(len(attachment_list), 1)
+
+    # Third, check document
+    result = self.portal_catalog(portal_type='Text')
+    self.assertEqual(len(result), 1)
+    document = result[0].getObject()
+    self.assertEqual(document.getRelativeUrl(), result[0].getRelativeUrl())
+
 
   def playSequence(self, step_list, quiet):
     sequence_list = SequenceList()

Modified: erp5/trunk/products/ERP5OOo/tests/test_document/email_from.txt
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/email_from.txt?rev=18252&r1=18251&r2=18252&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/test_document/email_from.txt (original)
+++ erp5/trunk/products/ERP5OOo/tests/test_document/email_from.txt Tue Dec 11 18:37:04 2007
@@ -12,7 +12,7 @@
 User-Agent: Thunderbird 1.5.0.7 (X11/20060921)
 MIME-Version: 1.0
 To:  bartek at erp5.pl
-Subject: blebleble
+Subject: A Test Mail
 Content-Type: multipart/mixed;
  boundary="------------070902080602050309080805"
 




More information about the Erp5-report mailing list