diff --git a/product/ERP5OOo/tests/testDeferredStyle.py b/product/ERP5OOo/tests/testDeferredStyle.py index 9b47bc399ef43c52ea108e9a750480e32047fa4e..396cca2b8b13f08f7ee7476b8a250bdb945a1847 100644 --- a/product/ERP5OOo/tests/testDeferredStyle.py +++ b/product/ERP5OOo/tests/testDeferredStyle.py @@ -80,12 +80,25 @@ class TestDeferredStyle(ERP5TypeTestCase, ZopeTestCase.Functional): password=self.password, ) login.validate() - system_preference = self.portal.portal_preference._getOb('syspref', None) + system_preference = self.portal.portal_preferences._getOb('syspref', None) if system_preference is None: - system_preference = self.portal.portal_preferences.newContent(portal_type="System Preference") + system_preference = self.portal.portal_preferences.newContent( + id="syspref", + portal_type="System Preference") system_preference.enable() # Fallback to former behaviour system_preference.edit(preferred_deferred_report_stored_as_document=False) + # add categories + if not getattr(self.portal.portal_categories.classification, 'collaborative', None): + self.portal.portal_categories.classification.newContent(id="collaborative") + if not getattr(self.portal.portal_categories.publication_section, 'reporting', None): + self.portal.portal_categories.publication_section.newContent(id="reporting") + self.tic() + + def beforeTearDown(self): + document_ids = list(self.portal.document_module.objectIds()) + if len(document_ids): + self.portal.document_module.manage_delObjects(ids=document_ids) self.tic() def loginAsUser(self, username): @@ -127,6 +140,49 @@ class TestDeferredStyle(ERP5TypeTestCase, ZopeTestCase.Functional): else: self.fail('Attachment not found in email\n%s' % message_text) + def test_report_stored_as_document(self): + publication_section = "reporting" + classification = "collaborative" + system_preference = self.portal.portal_preferences._getOb('syspref', None) + system_preference.edit(preferred_deferred_report_stored_as_document=True, + preferred_deferred_report_classification=classification, + preferred_deferred_report_publication_section=publication_section, + preferred_deferred_report_notification_message_reference=None) + self.loginAsUser('bob') + 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)) + self.tic() + # A document has been created + document_list = self.portal.document_module.objectValues() + self.assertEquals(len(document_list), 1) + document = document_list[0].getObject() + expected_file_name = 'History%s' % self.attachment_file_extension + self.assertEqual(expected_file_name, document.getFilename()) + self.assertEqual(expected_file_name, document.getTitle()) + self.assertEqual(None, document.getReference()) + self.assertEqual("shared", document.getValidationState()) + self.assertEqual(publication_section, document.getPublicationSection()) + self.assertEqual(classification, document.getClassification()) + self.assertEqual(self.portal_type, document.getPortalType()) + + last_message = self.portal.MailHost._last_message + self.assertNotEquals((), last_message) + mfrom, mto, message_text = last_message + self.assertEqual('"%s" <%s>' % (self.first_name, self.recipient_email_address), mto[0]) + mail_message = email.message_from_string(message_text) + for part in mail_message.walk(): + content_type = part.get_content_type() + if content_type == "text/html": + # "History" is the title of Base_viewHistory form + content = part.get_payload() + self.assertTrue("History%s" % self.attachment_file_extension in content) + self.assertTrue("erp5/document_module" in content) + break + else: + self.fail('Attachment not found in email\n%s' % message_text) + def test_normal_form(self): self.loginAsUser('bob') # simulate a big request, for which Base_callDialogMethod will not issue a @@ -223,6 +279,7 @@ class TestODSDeferredStyle(TestDeferredStyle): skin = 'ODS' content_type = 'application/vnd.oasis.opendocument.spreadsheet' attachment_file_extension = '.ods' + portal_type="Spreadsheet" def test_report_view_sheet_per_report_section(self): """Test the sheet_per_report_section feature of erp5_ods_style. @@ -261,11 +318,10 @@ class TestODTDeferredStyle(TestDeferredStyle): skin = 'ODT' content_type = 'application/vnd.oasis.opendocument.text' attachment_file_extension = '.odt' - + portal_type = "Text" def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestODSDeferredStyle)) suite.addTest(unittest.makeSuite(TestODTDeferredStyle)) return suite -