From e0da436c0e6d73de25593649ddfb5c7a1a297493 Mon Sep 17 00:00:00 2001
From: Yusei Tahara <yusei@nexedi.com>
Date: Fri, 21 Dec 2007 17:03:46 +0000
Subject: [PATCH] Updated unittest. Use file contribution(uploading from
 contribution tool) and file upload(uploading from view form) instead of using
 file upload dialog.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@18476 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5OOo/tests/testIngestion.py        | 134 +++++++++++++++---
 .../tests/test_document/ANOTHE-en-001.doc     | Bin 0 -> 104960 bytes
 .../test_document/TEST-en-002-modified.doc    | Bin 0 -> 104448 bytes
 3 files changed, 117 insertions(+), 17 deletions(-)
 create mode 100644 product/ERP5OOo/tests/test_document/ANOTHE-en-001.doc
 create mode 100644 product/ERP5OOo/tests/test_document/TEST-en-002-modified.doc

diff --git a/product/ERP5OOo/tests/testIngestion.py b/product/ERP5OOo/tests/testIngestion.py
index 9140468995..0aed3cdd1b 100644
--- a/product/ERP5OOo/tests/testIngestion.py
+++ b/product/ERP5OOo/tests/testIngestion.py
@@ -319,6 +319,8 @@ class TestIngestion(ERP5TypeTestCase):
         # PDF has not implemented _convertToBaseFormat() so can not be converted
         self.assertEquals(context.getExternalProcessingState(), 'uploaded')
       else:
+        if context.getExternalProcessingState()=='uploaded':
+          import pdb;pdb.set_trace()
         self.assertEquals(context.getExternalProcessingState(), 'converted') # this is how we know if it was ok or not
         self.assert_('magic' in context.SearchableText())
         self.assert_('magic' in str(context.asText()))
@@ -539,10 +541,18 @@ class TestIngestion(ERP5TypeTestCase):
     context = self.getDocument('one')
     return self.assertEquals(context.getExternalProcessingState(), 'uploaded')
 
+  def stepCheckConvertingState(self, sequence=None, sequence_list=None, **kw):
+    """
+      Check if the document is in "converting" processing state
+      (ie. a file upload has been done and the document is converting)
+    """
+    context = self.getDocument('one')
+    return self.assertEquals(context.getExternalProcessingState(), 'converting')
+
   def stepCheckConvertedState(self, sequence=None, sequence_list=None, **kw):
     """
       Check if the document is in "converted" processing state
-      (ie. a file upload has been done and the document has
+      (ie. a file conversion has been done and the document has
       been converted)
     """
     context = self.getDocument('one')
@@ -568,27 +578,74 @@ class TestIngestion(ERP5TypeTestCase):
     self.assertEquals(document.getRevision(), '1')
     document.reindexObject()
     get_transaction().commit()
-    self.tic()
 
-  def stepDialogUpload(self, sequence=None, sequence_list=None, **kw):
+  def stepUploadFromViewForm(self, sequence=None, sequence_list=None, **kw):
     """
-      Upload a file using the dialog script Document_uploadFile
-      and make sure this increases the revision
+      Upload a file from view form and make sure this increases the revision
     """
     context = self.getDocument('one')
     f = makeFileUpload('TEST-en-002.doc')
     revision = context.getRevision()
-    context.Document_uploadFile(file=f)
+    context.edit(file=f)
+    self.assertEquals(context.getRevision(), str(int(revision) + 1))
+    context.reindexObject()
+    get_transaction().commit()
+
+  def stepUploadTextFromContributionTool(self, sequence=None, sequence_list=None, **kw):
+    """
+      Upload a file from contribution.
+    """
+    f = makeFileUpload('TEST-en-002.doc')
+    self.portal.portal_contributions.newContent(id='one', file=f)
+    get_transaction().commit()
+
+  def stepReuploadTextFromContributionTool(self, sequence=None, sequence_list=None, **kw):
+    """
+      Upload a file from contribution form and make sure this update existing
+      document and don't make a new document.
+    """
+    context = self.getDocument('one')
+    revision = context.getRevision()
+    number_of_document = len(self.portal.document_module.objectIds())
+    self.assert_('This document is modified.' not in context.asText())
+
+    f = makeFileUpload('TEST-en-002-modified.doc')
+    f.filename = 'TEST-en-002.doc'
+
+    self.portal.portal_contributions.newContent(file=f)
+    get_transaction().commit()
+    self.tic()
+    get_transaction().commit()
     self.assertEquals(context.getRevision(), str(int(revision) + 1))
+    self.assert_('This document is modified.' in context.asText())
+    self.assertEquals(len(self.portal.document_module.objectIds()),
+                      number_of_document)
+
     context.reindexObject()
     get_transaction().commit()
+
+  def stepUploadAnotherTextFromContributionTool(self, sequence=None, sequence_list=None, **kw):
+    """
+      Upload another file from contribution.
+    """
+    f = makeFileUpload('ANOTHE-en-001.doc')
+    self.portal.portal_contributions.newContent(id='two', file=f)
+
+    get_transaction().commit()
     self.tic()
+    get_transaction().commit()
+
+    context = self.getDocument('two')
+    self.assert_('This is a another very interesting document.' in context.asText())
+    self.assertEquals(context.getReference(), 'ANOTHE')
+    self.assertEquals(context.getVersion(), '001')
+    self.assertEquals(context.getLanguage(), 'en')
 
   def stepDiscoverFromFilename(self, sequence=None, sequence_list=None, **kw):
     """
-      Upload a file using the dialog script Document_uploadFile.
-      This should trigger metadata discovery and we should have
-      basic coordinates immediately, from first stage.
+      Upload a file using contribution tool. This should trigger metadata
+      discovery and we should have basic coordinates immediately,
+      from first stage.
     """
     context = self.getDocument('one')
     file_name = 'TEST-en-002.doc'
@@ -605,7 +662,7 @@ class TestIngestion(ERP5TypeTestCase):
     self.assertEquals(property_dict['subject_list'], ['keywords'])
     # Then make sure metadata discovery works
     f = makeFileUpload(file_name)
-    context.Document_uploadFile(file=f)
+    context.edit(file=f)
     self.assertEquals(context.getReference(), 'TEST')
     self.assertEquals(context.getLanguage(), 'en')
     self.assertEquals(context.getVersion(), '002')
@@ -639,7 +696,7 @@ class TestIngestion(ERP5TypeTestCase):
     """
     context = self.getDocument('one')
     f = makeFileUpload('TEST-en-002.doc')
-    context.Document_uploadFile(file=f)
+    context.edit(file=f)
     get_transaction().commit()
     self.tic()
     # Then make sure content discover works
@@ -990,11 +1047,13 @@ class TestIngestion(ERP5TypeTestCase):
                  ,'stepCreateTextDocument'
                  ,'stepCheckEmptyState'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
                  ,'stepCheckConvertedState'
-                 ,'stepDialogUpload'
+                 ,'stepUploadFromViewForm'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
                  ,'stepCheckConvertedState'
-                 ,'stepDiscoverFromFilename'
-                 ,'stepCheckConvertedContent'
                 ]
     self.playSequence(step_list, quiet)
 
@@ -1014,8 +1073,9 @@ class TestIngestion(ERP5TypeTestCase):
     if not run: return
     if not quiet: printAndLog('test_04_MetadataExtraction')
     step_list = [ 'stepCleanUp'
-                 ,'stepCreateTextDocument'
+                 ,'stepUploadTextFromContributionTool'
                  ,'stepSetSimulatedDiscoveryScript'
+                 ,'stepTic'
                  ,'stepTestMetadataSetting'
                 ]
     self.playSequence(step_list, quiet)
@@ -1030,7 +1090,10 @@ class TestIngestion(ERP5TypeTestCase):
     if not quiet: printAndLog('test_04_MetadataEditing')
     step_list = [ 'stepCleanUp'
                  ,'stepCreateTextDocument'
-                 ,'stepDialogUpload'
+                 ,'stepUploadFromViewForm'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepEditMetadata'
                  ,'stepCheckChangedMetadata'
                 ]
@@ -1100,7 +1163,10 @@ class TestIngestion(ERP5TypeTestCase):
     if not quiet: printAndLog('test_07_SnapshotGeneration')
     step_list = [ 'stepCleanUp'
                  ,'stepCreateTextDocument'
-                 ,'stepDialogUpload'
+                 ,'stepUploadFromViewForm'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepCheckHasNoSnapshot'
                  ,'stepCreateSnapshot'
                  ,'stepTryRecreateSnapshot'
@@ -1149,22 +1215,37 @@ class TestIngestion(ERP5TypeTestCase):
     step_list = [ 'stepCleanUp' 
                  ,'stepCreateTextDocument'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepSetSimulatedDiscoveryScriptForOrdering'
                  ,'stepCheckMetadataSettingOrderFICU'
                  ,'stepCreateTextDocument'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepSetSimulatedDiscoveryScriptForOrdering'
                  ,'stepCheckMetadataSettingOrderCUFI'
                  ,'stepCreateTextDocument'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepSetSimulatedDiscoveryScriptForOrdering'
                  ,'stepCheckMetadataSettingOrderUIFC'
                  ,'stepCreateTextDocument'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepSetSimulatedDiscoveryScriptForOrdering'
                  ,'stepCheckMetadataSettingOrderICUF'
                  ,'stepCreateTextDocument'
                  ,'stepStraightUpload'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
                  ,'stepSetSimulatedDiscoveryScriptForOrdering'
                  ,'stepCheckMetadataSettingOrderUFCI'
                 ]
@@ -1186,6 +1267,25 @@ class TestIngestion(ERP5TypeTestCase):
                 ]
     self.playSequence(step_list, quiet)
 
+  def test_12_UploadTextFromContributionTool(self, quiet=QUIET, run=RUN_ALL_TEST):
+    """
+      Make sure that when upload file from contribution tool, it creates a new
+      document in document module. when reupload same filename file, then it
+      does not create a new document and update existing document.
+    """
+    if not run: return
+    if not quiet: printAndLog('test_12_ReUploadSameFilenameFile')
+    step_list = [ 'stepCleanUp'
+                 ,'stepUploadTextFromContributionTool'
+                 ,'stepCheckConvertingState'
+                 ,'stepTic'
+                 ,'stepCheckConvertedState'
+                 ,'stepDiscoverFromFilename'
+                 ,'stepTic'
+                 ,'stepReuploadTextFromContributionTool'
+                 ,'stepUploadAnotherTextFromContributionTool'
+                ]
+    self.playSequence(step_list, quiet)
 
 # Missing tests
 """
diff --git a/product/ERP5OOo/tests/test_document/ANOTHE-en-001.doc b/product/ERP5OOo/tests/test_document/ANOTHE-en-001.doc
new file mode 100644
index 0000000000000000000000000000000000000000..0115ed73a78b857c44a5af900ef890562d51ea41
GIT binary patch
literal 104960
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

literal 0
HcmV?d00001

diff --git a/product/ERP5OOo/tests/test_document/TEST-en-002-modified.doc b/product/ERP5OOo/tests/test_document/TEST-en-002-modified.doc
new file mode 100644
index 0000000000000000000000000000000000000000..c2c4ae26d0a2160cbd660c9f4b737f25fa99482c
GIT binary patch
literal 104448
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

literal 0
HcmV?d00001

-- 
2.30.9