Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/tests/Test_F_BlatProgramLauncher.py @ 18:94ab73e8a190
Uploaded
| author | m-zytnicki | 
|---|---|
| date | Mon, 29 Apr 2013 03:20:15 -0400 | 
| parents | |
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| 17:b0e8584489e6 | 18:94ab73e8a190 | 
|---|---|
| 1 import os | |
| 2 import unittest | |
| 3 from commons.core.utils.FileUtils import FileUtils | |
| 4 from devTools.tests.MockFastaSupctg30 import MockFastaSupctg30 | |
| 5 from devTools.tests.MockMiniProtBankSupctg30 import MockMiniProtBankSupctg30 | |
| 6 from commons.launcher.tests.MockDataBankForBlat import MockDataBankForBlat | |
| 7 from commons.launcher.tests.MockESTBankForBlat import MockESTBankForBlat | |
| 8 from commons.launcher.tests.MockOutputForBlat import MockOutputForBlat | |
| 9 from commons.launcher.BlatProgramLauncher import BlatProgramLauncher | |
| 10 | |
| 11 class Test_F_BlatProgramLauncher(unittest.TestCase): | |
| 12 | |
| 13 def test_run_empty_result(self): | |
| 14 queryFileName = "smallProtBank_supctg30.fa" | |
| 15 mock = MockMiniProtBankSupctg30() | |
| 16 mock.write(queryFileName) | |
| 17 subjectFileName = "subjectBank.fa" | |
| 18 mock = MockFastaSupctg30() | |
| 19 mock.write(subjectFileName) | |
| 20 | |
| 21 expOutputFileName = "expBlatOutput.blast.align" | |
| 22 self.writeEmptyExpOutputFile(expOutputFileName) | |
| 23 | |
| 24 obsOutputFileName = "obsBlatOutput.blast.align" | |
| 25 | |
| 26 bpl = BlatProgramLauncher() | |
| 27 bpl.setInputFile(queryFileName) | |
| 28 bpl.setSubjectFile(subjectFileName) | |
| 29 bpl.setOutputFile(obsOutputFileName) | |
| 30 bpl.setProgramParameters("") | |
| 31 bpl.run() | |
| 32 | |
| 33 blastFileName = queryFileName + ".blast" | |
| 34 | |
| 35 self.assertTrue(os.path.exists(obsOutputFileName)) | |
| 36 self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) | |
| 37 | |
| 38 os.remove(queryFileName) | |
| 39 os.remove(subjectFileName) | |
| 40 os.remove(blastFileName) | |
| 41 os.remove(expOutputFileName) | |
| 42 os.remove(obsOutputFileName) | |
| 43 | |
| 44 def test_as_script_empty_result(self): | |
| 45 queryFileName = "smallProtBank_supctg30.fa" | |
| 46 mock = MockMiniProtBankSupctg30() | |
| 47 mock.write(queryFileName) | |
| 48 subjectFileName = "subjectBank.fa" | |
| 49 mock = MockFastaSupctg30() | |
| 50 mock.write(subjectFileName) | |
| 51 | |
| 52 expOutputFileName = "expBlatOutput.blast.align" | |
| 53 self.writeEmptyExpOutputFile(expOutputFileName) | |
| 54 | |
| 55 obsOutputFileName = "obsBlatOutput.blast.align" | |
| 56 | |
| 57 cmd2Launch = "python ../BlatProgramLauncher.py -s " + subjectFileName + " -i " + queryFileName + " -p '' -o " + obsOutputFileName | |
| 58 | |
| 59 os.system(cmd2Launch) | |
| 60 | |
| 61 blastFileName = queryFileName + ".blast" | |
| 62 | |
| 63 self.assertTrue(os.path.exists(obsOutputFileName)) | |
| 64 self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) | |
| 65 | |
| 66 os.remove(queryFileName) | |
| 67 os.remove(subjectFileName) | |
| 68 os.remove(blastFileName) | |
| 69 os.remove(expOutputFileName) | |
| 70 os.remove(obsOutputFileName) | |
| 71 | |
| 72 def test_run(self): | |
| 73 queryFileName = "smallESTBank.fa" | |
| 74 mock = MockESTBankForBlat() | |
| 75 mock.write(queryFileName) | |
| 76 subjectFileName = "subjectBank.fa" | |
| 77 mock = MockDataBankForBlat() | |
| 78 mock.write(subjectFileName) | |
| 79 | |
| 80 expOutputFileName = "expBlatOutput.blast.align" | |
| 81 mock = MockOutputForBlat() | |
| 82 mock.write(expOutputFileName) | |
| 83 | |
| 84 obsOutputFileName = "obsBlatOutput.blast.align" | |
| 85 | |
| 86 bpl = BlatProgramLauncher() | |
| 87 bpl.setInputFile(queryFileName) | |
| 88 bpl.setSubjectFile(subjectFileName) | |
| 89 bpl.setOutputFile(obsOutputFileName) | |
| 90 bpl.setProgramParameters("") | |
| 91 bpl.run() | |
| 92 | |
| 93 blastFileName = queryFileName + ".blast" | |
| 94 | |
| 95 self.assertTrue(os.path.exists(obsOutputFileName)) | |
| 96 self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) | |
| 97 | |
| 98 os.remove(queryFileName) | |
| 99 os.remove(subjectFileName) | |
| 100 os.remove(blastFileName) | |
| 101 os.remove(expOutputFileName) | |
| 102 os.remove(obsOutputFileName) | |
| 103 | |
| 104 def test_as_script(self): | |
| 105 queryFileName = "smallESTBank.fa" | |
| 106 mock = MockESTBankForBlat() | |
| 107 mock.write(queryFileName) | |
| 108 subjectFileName = "subjectBank.fa" | |
| 109 mock = MockDataBankForBlat() | |
| 110 mock.write(subjectFileName) | |
| 111 | |
| 112 expOutputFileName = "expBlatOutput.blast.align" | |
| 113 mock = MockOutputForBlat() | |
| 114 mock.write(expOutputFileName) | |
| 115 | |
| 116 obsOutputFileName = "obsBlatOutput.blast.align" | |
| 117 | |
| 118 cmd2Launch = "python ../BlatProgramLauncher.py -s " + subjectFileName + " -i " + queryFileName + " -p '' -o " + obsOutputFileName | |
| 119 | |
| 120 os.system(cmd2Launch) | |
| 121 | |
| 122 blastFileName = queryFileName + ".blast" | |
| 123 | |
| 124 self.assertTrue(os.path.exists(obsOutputFileName)) | |
| 125 self.assertTrue(FileUtils.are2FilesIdentical(expOutputFileName, obsOutputFileName)) | |
| 126 | |
| 127 os.remove(queryFileName) | |
| 128 os.remove(subjectFileName) | |
| 129 os.remove(blastFileName) | |
| 130 os.remove(expOutputFileName) | |
| 131 os.remove(obsOutputFileName) | |
| 132 | |
| 133 def writeEmptyExpOutputFile(self, outputFileName): | |
| 134 f = open(outputFileName, "w") | |
| 135 f.write("") | |
| 136 f.close() | |
| 137 | |
| 138 if __name__ == "__main__": | |
| 139 unittest.main() | 
