diff --git a/product/ERP5OOo/tests/testDms.py b/product/ERP5OOo/tests/testDms.py index bfcc955733f5d87d2f6fe9a08f7bae41ccd0ac68..1dde27f826be5b97de6e5666e43d4c909a0a5dc8 100644 --- a/product/ERP5OOo/tests/testDms.py +++ b/product/ERP5OOo/tests/testDms.py @@ -26,6 +26,23 @@ # ############################################################################## +""" + A test suite for Document Management System functionality. + This will test: + - creating text documents + - setting properties of a document, assigning local roles + - setting relations between documents (explicit and implicity) + - searching in basic and advanced modes + - document publication workflow settings + - sourcing external content + - (...) + This will NOT test: + - contributing files of various types + - convertion between many formats + - metadata extraction and editing + - email ingestion + These are subject to another suite "testIngestion". +""" # @@ -39,9 +56,6 @@ if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) -class FileObject(file): - filename='' - # Needed in order to have a log file inside the current folder os.environ['EVENT_LOG_FILE'] = os.path.join(os.getcwd(), 'zLOG.log') os.environ['EVENT_LOG_SEVERITY'] = '-300' @@ -69,6 +83,8 @@ class TestDocument(ERP5TypeTestCase): def getTitle(self): return "DMS" + ## setup + def afterSetUp(self, quiet=1, run=1): self.createCategories() self.createObjects() @@ -99,13 +115,14 @@ class TestDocument(ERP5TypeTestCase): else: path = path[cat] + ## helper methods + def getUserFolder(self): return self.getPortal().acl_users def createObjects(self): if not hasattr(self.getPortal().person_module,'1'): p1=self.getPortal().person_module.newContent(portal_type='Person',id='1',first_name='John',last_name='McCartney',reference='john',career_role='internal') - #self.getWorkflowTool().doActionFor(p1,'validate_action') get_transaction().commit() self.tic() @@ -120,25 +137,10 @@ class TestDocument(ERP5TypeTestCase): user = uf.getUserById('seb').__of__(uf) newSecurityManager(None, user) - def test_01_HasEverything(self, quiet=0, run=run_all_test): - if not run: return - if not quiet: - ZopeTestCase._print('\nTest Has Everything ') - LOG('Testing... ',0,'testHasEverything') - self.failUnless(self.getCategoryTool()!=None) - self.failUnless(self.getSimulationTool()!=None) - self.failUnless(self.getTypeTool()!=None) - self.failUnless(self.getSQLConnection()!=None) - self.failUnless(self.getCatalogTool()!=None) - self.failUnless(self.getWorkflowTool()!=None) - def _addRoleToDoc(self,doc): role=doc.newContent(portal_type='Role Definition') role._edit(agent='person_module/1',role_name='Assignor') - #def printAndCheck(self,doc): - #self.assert_(u'Auditor' in doc.__ac_local_roles__.get('HQ',[])) - def createTestDocument(self): dm=self.getPortal().document_module doctext=dm.newContent(portal_type='Text') @@ -150,6 +152,20 @@ class TestDocument(ERP5TypeTestCase): doctext.convert() return doctext + ## tests + + def test_01_HasEverything(self, quiet=0, run=run_all_test): + if not run: return + if not quiet: + ZopeTestCase._print('\nTest Has Everything ') + LOG('Testing... ',0,'testHasEverything') + self.failUnless(self.getCategoryTool()!=None) + self.failUnless(self.getSimulationTool()!=None) + self.failUnless(self.getTypeTool()!=None) + self.failUnless(self.getSQLConnection()!=None) + self.failUnless(self.getCatalogTool()!=None) + self.failUnless(self.getWorkflowTool()!=None) + def test_02_ObjectCreation(self,quiet=0,run=run_all_test): if not quiet: ZopeTestCase._print('\nTest Object Creation') @@ -163,76 +179,6 @@ class TestDocument(ERP5TypeTestCase): u=self.getTestUser() self.failUnless('Assignor' in u.getRolesInContext(doctext)) - def test_03_BasicConversion(self,quiet=0,run=run_all_test): - if not quiet: - ZopeTestCase._print('\nTest Basic Conversion') - LOG('Testing... ',0,'test_03_BasicConversion') - dm=self.getPortal().document_module - doctext=dm.newContent(portal_type='Text') - doctext._getServerCoordinate=lambda:('127.0.0.1',8080) - f=FileObject(os.getenv('INSTANCE_HOME')+'/../Products/ERP5OOo/tests/test.doc') - f.filename='test.doc' - doctext._edit(file=f) - f.close() - self.assert_(not doctext.hasOOFile()) - ZopeTestCase._print('\n originalloaded '+str(doctext.getSourceReference())) - ZopeTestCase._print('\n hasOOFile '+str(doctext.hasOOFile())) - doctext.convert() - self.assert_(doctext.hasOOFile()) - ZopeTestCase._print('\n hasOOFile '+str(doctext.hasOOFile())) - tgts=doctext.getTargetFormatItemList() - tgtext=[t[1] for t in tgts] - self.assert_('pdf' in tgtext) - self.assertEquals('keywords',doctext.getSubjectList()[0]) - self.assert_(doctext.getSearchableText().find('adadadfa')) - - def test_04_FileGeneration(self,quiet=0,run=run_all_test): - if not quiet: - ZopeTestCase._print('\nTest File Generation') - LOG('Testing... ',0,'test_04_FileGeneration') - doctext=self.createTestDocument() - doctext.getTargetFile('pdf') - self.assert_(doctext.hasConversion(format = 'pdf')) - doctext.getTargetFile('doc') - self.assert_(doctext.hasConversion(format = 'doc')) - doctext.getTargetFile('txt') - self.assert_(doctext.hasConversion(format = 'txt')) - doctext.getTargetFile('html-writer') - self.assert_(doctext.hasConversion(format = 'html-writer')) - doctext.getTargetFile('rtf') - self.assert_(doctext.hasConversion(format = 'rtf')) - self.failIf(doctext.hasSnapshot()) - doctext.createSnapshot() - self.failUnless(doctext.hasSnapshot()) - # XXX why this line fails??? - # self.assertRaises(ConversionError,doctext.createSnapshot) - - def test_05_OtherFunctions(self,quiet=0,run=run_all_test): - if not quiet: - ZopeTestCase._print('\nTest Other Functions') - LOG('Testing... ',0,'test_05_OtherFunctions') - doctext=self.createTestDocument() - #ZopeTestCase._print('\n'+doctext.getCacheInfo()) - mtype=doctext.guessMimeType('file.doc') - self.assertEquals(mtype,'application/msword') - - def test_06_ExternalDocument(self,quiet=0,run=run_all_test): - if not quiet: - ZopeTestCase._print('\nTest External Web Page') - LOG('Testing... ',0,'test_06_ExternalWeb Page') - dm=self.getPortal().external_source_module - doctext=dm.newContent(portal_type='External Web Page') - self.assert_('http' in doctext.getProtocolList()) - doctext.setUrlProtocol('http') - doctext.setUrlString('localhost:%i/erp5' % erp5_port) - doctext.spiderSource() - if not quiet: - ZopeTestCase._print(doctext.getExternalProcessingStatusMessage()) - LOG('Testing External Web Page... ',0,doctext.getExternalProcessingStatusMessage()) - self.assert_(doctext.getTextContent().find('My language')>-1) - - - if __name__ == '__main__': framework() else: