diff --git a/product/ERP5OOo/tests/testIngestion.py b/product/ERP5OOo/tests/testIngestion.py index a7a09ba0d0bbdf7aa8637808c6ddb22e956dffb9..489ccfb170cec02352060095502640c7f828105e 100644 --- a/product/ERP5OOo/tests/testIngestion.py +++ b/product/ERP5OOo/tests/testIngestion.py @@ -47,8 +47,8 @@ conversion_server_host = ('127.0.0.1', 8008) # test files' home TEST_FILES_HOME = os.path.join(os.path.dirname(__file__), 'test_document') -FILE_NAME_REGULAR_EXPRESSION = "(?P<reference>[A-Z]{3,6})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})" -REFERENCE_REGULAR_EXPRESSION = "(?P<reference>[A-Z]{3,6})(-(?P<language>[a-z]{2}))?(-(?P<version>[0-9]{3}))?" +FILE_NAME_REGULAR_EXPRESSION = "(?P<reference>[A-Z&é@{]{3,7})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})" +REFERENCE_REGULAR_EXPRESSION = "(?P<reference>[A-Z&é@{]{3,7})(-(?P<language>[a-z]{2}))?(-(?P<version>[0-9]{3}))?" def printAndLog(msg): """ @@ -655,6 +655,7 @@ class TestIngestion(ERP5TypeTestCase): self.assertEquals(context.getReference(), 'TEST') self.assertEquals(context.getLanguage(), 'en') self.assertEquals(context.getVersion(), '002') + self.assertEquals(context.getSourceReference(), file_name) def stepCheckConvertedContent(self, sequence=None, sequence_list=None, **kw): """ @@ -1346,6 +1347,59 @@ class TestIngestion(ERP5TypeTestCase): ] self.playSequence(step_list, quiet) + def stepUploadTextFromContributionToolWithNonASCIIFilename(self, + sequence=None, sequence_list=None, **kw): + """ + Upload a file from contribution. + """ + f = makeFileUpload('T&é@{T-en-002.doc') + document = self.portal.portal_contributions.newContent(file=f) + sequence.edit(document_id=document.getId()) + get_transaction().commit() + + def stepDiscoverFromFilenameWithNonASCIIFilename(self, + sequence=None, sequence_list=None, **kw): + """ + Upload a file using contribution tool. This should trigger metadata + discovery and we should have basic coordinates immediately, + from first stage. + """ + context = self.getDocument(sequence.get('document_id')) + file_name = 'T&é@{T-en-002.doc' + # First make sure the regular expressions work + property_dict = context.getPropertyDictFromFileName(file_name) + self.assertEquals(property_dict['reference'], 'T&é@{T') + self.assertEquals(property_dict['language'], 'en') + self.assertEquals(property_dict['version'], '002') + # Then make sure content discover works + # XXX - This part must be extended + property_dict = context.getPropertyDictFromContent() + self.assertEquals(property_dict['title'], 'title') + self.assertEquals(property_dict['description'], 'comments') + self.assertEquals(property_dict['subject_list'], ['keywords']) + # Then make sure metadata discovery works + self.assertEquals(context.getReference(), 'T&é@{T') + self.assertEquals(context.getLanguage(), 'en') + self.assertEquals(context.getVersion(), '002') + self.assertEquals(context.getSourceReference(), file_name) + + def test_13_UploadTextFromContributionToolWithNonASCIIFilename(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_13_UploadTextFromContributionToolWithNonASCIIFilename') + step_list = [ 'stepCleanUp' + ,'stepUploadTextFromContributionToolWithNonASCIIFilename' + ,'stepTic' + ,'stepDiscoverFromFilenameWithNonASCIIFilename' + ] + self.playSequence(step_list, quiet) + # Missing tests """ property_dict = context.getPropertyDictFromUserLogin() diff --git "a/product/ERP5OOo/tests/test_document/T&\303\251@{T-en-002.doc" "b/product/ERP5OOo/tests/test_document/T&\303\251@{T-en-002.doc" new file mode 100644 index 0000000000000000000000000000000000000000..2fcb5f8e8b069d838c2efae56434c2e626aeb8e1 Binary files /dev/null and "b/product/ERP5OOo/tests/test_document/T&\303\251@{T-en-002.doc" differ