[Erp5-report] r29742 - /erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Oct 16 12:15:29 CEST 2009


Author: jerome
Date: Fri Oct 16 12:15:28 2009
New Revision: 29742

URL: http://svn.erp5.org?rev=29742&view=rev
Log:
test deferred style for ODS and ODT
use a report from erp5_base not to install erp5_crm
minor style changes


Modified:
    erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py

Modified: erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py?rev=29742&r1=29741&r2=29742&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDeferredStyle.py [utf8] Fri Oct 16 12:15:28 2009
@@ -34,13 +34,14 @@
 from Products.ERP5Type.tests.utils import DummyMailHost
 from AccessControl import getSecurityManager
 from AccessControl.SecurityManagement import newSecurityManager
+from Products.ERP5OOo.tests.utils import Validator
 import email
 
+
 class TestDeferredStyle(ERP5TypeTestCase, ZopeTestCase.Functional):
-  """Tests ODF styles for ERP5."""
-  skin = 'Deferred'
-  content_type = None
-  recipient_email_address = 'anybody at anywhere.aaa'
+  """Tests deferred styles for ERP5."""
+  skin = content_type = None
+  recipient_email_address = 'invalid at example.com'
   username = 'bob'
   password = 'bobpwd'
   first_name = 'Bob'
@@ -49,7 +50,8 @@
     return 'Test Deferred Style'
 
   def getBusinessTemplateList(self):
-    return ('erp5_base', 'erp5_crm', 'erp5_ods_style', 'erp5_odt_style', 'erp5_deferred_style',)
+    return ('erp5_base', 'erp5_ods_style',
+            'erp5_odt_style', 'erp5_deferred_style',)
 
   def afterSetUp(self):
     self.login()
@@ -59,12 +61,13 @@
     person_module = self.portal.person_module
     if person_module._getOb('pers', None) is None:
       person = person_module.newContent(id='pers', portal_type='Person',
-                                        reference=self.username, first_name=self.first_name,
-                                        password=self.password, default_email_text=self.recipient_email_address)
+                                        reference=self.username,
+                                        first_name=self.first_name,
+                                        password=self.password,
+                                        default_email_text=self.recipient_email_address)
       assignment = person.newContent(portal_type='Assignment')
       assignment.open()
 
-    self.portal.changeSkin(self.skin)
     # replace MailHost
     if 'MailHost' in self.portal.objectIds():
       self.portal.manage_delObjects(['MailHost'])
@@ -79,15 +82,14 @@
     newSecurityManager(None, user)
 
   def test_skin_selection(self):
-    self.assertTrue(self.skin in self.portal.portal_skins.getSkinSelections())
+    self.assertTrue('Deferred' in self.portal.portal_skins.getSkinSelections())
 
-  def test_form_list(self):
+  def test_report_view(self):
     self.loginAsUser('bob')
-    self.portal.changeSkin(self.skin)
-    #self.portal.event_module.EventModule_viewEventActivityReport()
-    self.portal.REQUEST.set('portal_skin', self.skin)
-    response = self.publish('/%s/event_module/EventModule_viewEventActivityReport' % self.portal.getId(),
-                            '%s:%s' % (self.username, self.password))
+    self.portal.changeSkin('Deferred')
+    response = self.publish(
+        '/%s/person_module/pers/Base_viewHistory?deferred_portal_skin=%s'
+        % (self.portal.getId(), self.skin), '%s:%s' % (self.username, self.password))
     transaction.commit()
     self.tic()
     last_message = self.portal.MailHost._last_message
@@ -95,19 +97,34 @@
     mfrom, mto, message_text = last_message
     self.assertEquals('"%s" <%s>' % (self.first_name, self.recipient_email_address), mto[0])
     mail_message = email.message_from_string(message_text)
-    ok = 0
     for part in mail_message.walk():
       content_type = part.get_content_type()
       file_name = part.get_filename()
+      # XXX the attachment name might change some day
       if file_name == 'report_view':
-        self.assertEquals(content_type, 'application/vnd.oasis.opendocument.text')
-        ok = 1
+        self.assertEquals(content_type, self.content_type)
+        data = part.get_payload(decode=True)
+        error_list = Validator().validate(data)
+        if error_list:
+          self.fail(''.join(error_list))
         break
-    if not ok:
+    else:
       self.fail('Attachment not found in email')
+
+
+class TestODSDeferredStyle(TestDeferredStyle):
+  skin = 'ODS'
+  content_type = 'application/vnd.oasis.opendocument.spreadsheet'
+
+
+class TestODTDeferredStyle(TestDeferredStyle):
+  skin = 'ODT'
+  content_type = 'application/vnd.oasis.opendocument.text'
+
 
 def test_suite():
   suite = unittest.TestSuite()
-  suite.addTest(unittest.makeSuite(TestDeferredStyle))
+  suite.addTest(unittest.makeSuite(TestODSDeferredStyle))
+  suite.addTest(unittest.makeSuite(TestODTDeferredStyle))
   return suite
 




More information about the Erp5-report mailing list