diff commons/launcher/tests/Test_F_BlatProgramLauncher.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commons/launcher/tests/Test_F_BlatProgramLauncher.py	Tue Apr 30 14:33:21 2013 -0400
@@ -0,0 +1,139 @@
+import os
+import unittest
+from commons.core.utils.FileUtils import FileUtils
+from devTools.tests.MockFastaSupctg30 import MockFastaSupctg30
+from devTools.tests.MockMiniProtBankSupctg30 import MockMiniProtBankSupctg30
+from commons.launcher.tests.MockDataBankForBlat import MockDataBankForBlat
+from commons.launcher.tests.MockESTBankForBlat import MockESTBankForBlat
+from commons.launcher.tests.MockOutputForBlat import MockOutputForBlat
+from commons.launcher.BlatProgramLauncher import BlatProgramLauncher
+
+class Test_F_BlatProgramLauncher(unittest.TestCase):
+
+    def test_run_empty_result(self):
+        queryFileName = "smallProtBank_supctg30.fa"
+        mock = MockMiniProtBankSupctg30()
+        mock.write(queryFileName)
+        subjectFileName = "subjectBank.fa"
+        mock = MockFastaSupctg30()
+        mock.write(subjectFileName)
+        
+        expOutputFileName = "expBlatOutput.blast.align"
+        self.writeEmptyExpOutputFile(expOutputFileName)
+        
+        obsOutputFileName = "obsBlatOutput.blast.align"
+
+        bpl = BlatProgramLauncher()
+        bpl.setInputFile(queryFileName)
+        bpl.setSubjectFile(subjectFileName)
+        bpl.setOutputFile(obsOutputFileName)
+        bpl.setProgramParameters("")
+        bpl.run()
+        
+        blastFileName = queryFileName + ".blast"
+        
+        self.assertTrue(os.path.exists(obsOutputFileName))
+        self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName))
+        
+        os.remove(queryFileName)
+        os.remove(subjectFileName)
+        os.remove(blastFileName)
+        os.remove(expOutputFileName)
+        os.remove(obsOutputFileName)
+
+    def test_as_script_empty_result(self):
+        queryFileName = "smallProtBank_supctg30.fa"
+        mock = MockMiniProtBankSupctg30()
+        mock.write(queryFileName)
+        subjectFileName = "subjectBank.fa"
+        mock = MockFastaSupctg30()
+        mock.write(subjectFileName)
+        
+        expOutputFileName = "expBlatOutput.blast.align"
+        self.writeEmptyExpOutputFile(expOutputFileName)
+        
+        obsOutputFileName = "obsBlatOutput.blast.align"
+        
+        cmd2Launch = "python ../BlatProgramLauncher.py -s " + subjectFileName + " -i " + queryFileName + " -p '' -o " + obsOutputFileName
+        
+        os.system(cmd2Launch)
+        
+        blastFileName = queryFileName + ".blast"
+                
+        self.assertTrue(os.path.exists(obsOutputFileName))
+        self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName))
+        
+        os.remove(queryFileName)
+        os.remove(subjectFileName)
+        os.remove(blastFileName)
+        os.remove(expOutputFileName)
+        os.remove(obsOutputFileName)
+
+    def test_run(self):
+        queryFileName = "smallESTBank.fa"
+        mock = MockESTBankForBlat()
+        mock.write(queryFileName)
+        subjectFileName = "subjectBank.fa"
+        mock = MockDataBankForBlat()
+        mock.write(subjectFileName)
+        
+        expOutputFileName = "expBlatOutput.blast.align"
+        mock = MockOutputForBlat()
+        mock.write(expOutputFileName)
+        
+        obsOutputFileName = "obsBlatOutput.blast.align"
+
+        bpl = BlatProgramLauncher()
+        bpl.setInputFile(queryFileName)
+        bpl.setSubjectFile(subjectFileName)
+        bpl.setOutputFile(obsOutputFileName)
+        bpl.setProgramParameters("")
+        bpl.run()
+        
+        blastFileName = queryFileName + ".blast"
+        
+        self.assertTrue(os.path.exists(obsOutputFileName))
+        self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName))
+        
+        os.remove(queryFileName)
+        os.remove(subjectFileName)
+        os.remove(blastFileName)
+        os.remove(expOutputFileName)
+        os.remove(obsOutputFileName)
+
+    def test_as_script(self):
+        queryFileName = "smallESTBank.fa"
+        mock = MockESTBankForBlat()
+        mock.write(queryFileName)
+        subjectFileName = "subjectBank.fa"
+        mock = MockDataBankForBlat()
+        mock.write(subjectFileName)
+        
+        expOutputFileName = "expBlatOutput.blast.align"
+        mock = MockOutputForBlat()
+        mock.write(expOutputFileName)
+        
+        obsOutputFileName = "obsBlatOutput.blast.align"
+        
+        cmd2Launch = "python ../BlatProgramLauncher.py -s " + subjectFileName + " -i " + queryFileName + " -p '' -o " + obsOutputFileName
+        
+        os.system(cmd2Launch)
+        
+        blastFileName = queryFileName + ".blast"
+                
+        self.assertTrue(os.path.exists(obsOutputFileName))
+        self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName))
+        
+        os.remove(queryFileName)
+        os.remove(subjectFileName)
+        os.remove(blastFileName)
+        os.remove(expOutputFileName)
+        os.remove(obsOutputFileName)
+        
+    def writeEmptyExpOutputFile(self, outputFileName):
+        f = open(outputFileName, "w")
+        f.write("")
+        f.close()
+        
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file