[Erp5-report] r42839 nicolas - /erp5/trunk/products/ERP5OOo/tests/testDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jan 31 17:54:34 CET 2011
Author: nicolas
Date: Mon Jan 31 17:54:34 2011
New Revision: 42839
URL: http://svn.erp5.org?rev=42839&view=rev
Log:
New test that showing bugs with processing_status_workflow and handling of
base_data conversions.
Modified:
erp5/trunk/products/ERP5OOo/tests/testDms.py
Modified: erp5/trunk/products/ERP5OOo/tests/testDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDms.py?rev=42839&r1=42838&r2=42839&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Mon Jan 31 17:54:34 2011
@@ -2196,6 +2196,58 @@ return 1
self.assertEquals(len(subject_result), 1)
self.assertEquals(subject_result[0].getPath(), document.getPath())
+ def test_base_convertable_behaviour_with_successive_updates(self):
+ """Check that update content's document (with setData and setFile)
+ will refresh base_data and content_md5 as expected.
+
+ When cloning a document base_data must not be computed once again.
+ """
+ # create a document
+ upload_file = makeFileUpload('TEST-en-002.doc')
+ kw = dict(file=upload_file, synchronous_metadata_discovery=True)
+ document = self.portal.Base_contribute(**kw)
+ self.stepTic()
+ previous_md5 = document.getContentMd5()
+ previous_base_data = document.getBaseData()
+
+ # Clone document: base_data must not be computed once again
+ cloned_document = document.Base_createCloneDocument(batch_mode=True)
+ self.assertEquals(previous_md5, cloned_document.getContentMd5())
+ self.assertEquals(document.getData(), cloned_document.getData())
+ self.assertEquals(document.getBaseData(), cloned_document.getBaseData())
+ self.assertEquals(document.getExternalProcessingState(),
+ cloned_document.getExternalProcessingState())
+ self.assertEquals(document.getExternalProcessingState(), 'converted')
+
+ # Update document with another content by using setData:
+ # base_data must be recomputed
+ document.edit(data=makeFileUpload('TEST-en-002.odt').read())
+ self.stepTic()
+ self.assertTrue(document.hasBaseData())
+ self.assertNotEquals(previous_base_data, document.getBaseData(),
+ 'base data is not refreshed')
+ self.assertNotEquals(previous_md5, document.getContentMd5())
+ self.assertEquals(document.getExternalProcessingState(), 'converted')
+ previous_md5 = document.getContentMd5()
+ previous_base_data = document.getBaseData()
+
+ # Update document with another content by using setFile:
+ # base_data must be recomputed
+ document.edit(file=makeFileUpload('TEST-en-002.doc'))
+ self.stepTic()
+ self.assertTrue(document.hasBaseData())
+ self.assertNotEquals(previous_base_data, document.getBaseData(),
+ 'base data is not refreshed')
+ self.assertNotEquals(previous_md5, document.getContentMd5())
+ self.assertEquals(document.getExternalProcessingState(), 'converted')
+
+ # Delete content: base_data must be deleted
+ document.edit(data=None)
+ self.stepTic()
+ self.assertFalse(document.hasBaseData())
+ self.assertFalse(document.hasContentMd5())
+ self.assertEquals(document.getExternalProcessingState(), 'empty')
+
def _test_document_publication_workflow(self, portal_type, transition):
document = self.getDocumentModule().newContent(portal_type=portal_type)
self.portal.portal_workflow.doActionFor(document, transition)
More information about the Erp5-report
mailing list