Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/tests/Test_RepeatMaskerProgramLauncher.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 unittest | |
| 2 from commons.launcher.RepeatMaskerProgramLauncher import RepeatMaskerProgramLauncher | |
| 3 | |
| 4 | |
| 5 class Test_RepeatMaskerProgramLauncher( unittest.TestCase ): | |
| 6 | |
| 7 def setUp( self ): | |
| 8 self._i = RepeatMaskerProgramLauncher() | |
| 9 | |
| 10 | |
| 11 def tearDown( self ): | |
| 12 self._i = None | |
| 13 | |
| 14 | |
| 15 def test_getSpecificHelpAsString( self ): | |
| 16 exp = "" | |
| 17 exp += "\nspecific options:" | |
| 18 exp += "\n -s: name of the subject file (repeats, format='fasta')" | |
| 19 exp += "\n -n: nb of processors to use in parallel (default='%i')" % ( self._i.getNbProcessors() ) | |
| 20 exp += "\n -g: calculate the GC content" | |
| 21 exp += "\n -b: skip bacterial insertion element check" | |
| 22 exp += "\n -l: does not mask low-complexity DNA or simple repeats" | |
| 23 exp += "\n -m: only masks low complex/simple repeats (no interspersed repeats)" | |
| 24 exp += "\n -o: name of the output file" | |
| 25 exp += "\n with -s: format='align', default=inFile+'.cat.align')" | |
| 26 exp += "\n with -m: format='path', default=inFile+'.cat.path')" | |
| 27 obs = self._i.getSpecificHelpAsString() | |
| 28 self.assertEqual( exp, obs ) | |
| 29 | |
| 30 | |
| 31 def test_setASpecificAttributeFromCmdLine( self ): | |
| 32 self._i.setASpecificAttributeFromCmdLine( "-s", "dummySubjectFile.fa" ) | |
| 33 self.assertEqual( "dummySubjectFile.fa", self._i.getSubjectFile() ) | |
| 34 | |
| 35 self._i.setASpecificAttributeFromCmdLine( "-n", "2" ) | |
| 36 self.assertEqual( 2, self._i.getNbProcessors() ) | |
| 37 | |
| 38 self._i.setASpecificAttributeFromCmdLine( "-g" ) | |
| 39 self.assertEqual( True, self._i.getCalculateGCcontent() ) | |
| 40 | |
| 41 self._i.setASpecificAttributeFromCmdLine( "-b" ) | |
| 42 self.assertEqual( True, self._i.getSkipBacterialIsCheck() ) | |
| 43 | |
| 44 self._i.setASpecificAttributeFromCmdLine( "-l" ) | |
| 45 self.assertEqual( False, self._i.getMaskSsr() ) | |
| 46 | |
| 47 self._i.setASpecificAttributeFromCmdLine( "-o", "dummyOutFile.align" ) | |
| 48 self.assertEqual( "dummyOutFile.align", self._i.getOutputFile() ) | |
| 49 | |
| 50 | |
| 51 def test_setWrapperCommandLine( self ): | |
| 52 self._i.setInputFile( "dummyInFile.fa" ) | |
| 53 self._i.setSubjectFile( "dummySubjectFile.fa" ) | |
| 54 exp = "RepeatMaskerProgramLauncher.py" | |
| 55 exp += " -i %s" % ( "dummyInFile.fa" ) | |
| 56 exp += " -s %s" % ( "dummySubjectFile.fa" ) | |
| 57 exp += " -n 1" | |
| 58 self._i.setWrapperCommandLine() | |
| 59 obs = self._i.getWrapperCommandLine() | |
| 60 self.assertEqual( exp, obs ) | |
| 61 | |
| 62 | |
| 63 def test_setProgramCommandLine( self ): | |
| 64 self._i.setInputFile( "dummyInFile.fa" ) | |
| 65 self._i.setSubjectFile( "dummySubjectFile.fa" ) | |
| 66 self._i.setCalculateGCcontent() | |
| 67 self._i.setSkipBacterialIsCheck() | |
| 68 exp = "RepeatMasker -dir . -pa 1 -gccalc -no_is -nolow -lib dummySubjectFile.fa dummyInFile.fa" | |
| 69 self._i.setProgramCommandLine() | |
| 70 obs = self._i.getProgramCommandLine() | |
| 71 self.assertEqual( exp, obs ) | |
| 72 | |
| 73 | |
| 74 def test_setProgramCommandLine_withoutSubjects_withMaskSsr( self ): | |
| 75 self._i.setInputFile( "dummyInFile.fa" ) | |
| 76 self._i.setCalculateGCcontent() | |
| 77 self._i.setSkipBacterialIsCheck() | |
| 78 exp = "RepeatMasker -dir . -pa 1 -gccalc -no_is -nolow dummyInFile.fa" | |
| 79 self._i.setProgramCommandLine() | |
| 80 obs = self._i.getProgramCommandLine() | |
| 81 self.assertEqual( exp, obs ) | |
| 82 | |
| 83 | |
| 84 def test_setListFilesToKeep_onlyInFile( self ): | |
| 85 self._i.setInputFile( "dummyInFile.fa" ) | |
| 86 self._i.setOnlySsr() | |
| 87 lExp = [ "dummyInFile.fa.cat", "dummyInFile.fa.cat.path" ] | |
| 88 self._i.setListFilesToKeep() | |
| 89 lObs = self._i.getListFilesToKeep() | |
| 90 lExp.sort() | |
| 91 lObs.sort() | |
| 92 self.assertEqual( lExp, lObs ) | |
| 93 | |
| 94 | |
| 95 def test_setListFilesToKeep_withSubjectFile( self ): | |
| 96 self._i.setInputFile( "dummyInFile.fa" ) | |
| 97 self._i.setSubjectFile( "dummySbjFile.fa" ) | |
| 98 lExp = [ "dummyInFile.fa.cat", "dummyInFile.fa.cat.align" ] | |
| 99 self._i.setListFilesToKeep() | |
| 100 lObs = self._i.getListFilesToKeep() | |
| 101 lExp.sort() | |
| 102 lObs.sort() | |
| 103 self.assertEqual( lExp, lObs ) | |
| 104 | |
| 105 | |
| 106 def test_setListFilesToKeep_inFileAndOutFile( self ): | |
| 107 self._i.setInputFile( "dummyInFile.fa" ) | |
| 108 self._i.setOutputFile( "dummyOutFile.align" ) | |
| 109 lExp = [ "dummyInFile.fa.cat", "dummyOutFile.align" ] | |
| 110 self._i.setListFilesToKeep() | |
| 111 lObs = self._i.getListFilesToKeep() | |
| 112 lExp.sort() | |
| 113 lObs.sort() | |
| 114 self.assertEqual( lExp, lObs ) | |
| 115 | |
| 116 | |
| 117 def test_setListFilesToKeep_inFileAndOutFileAndSsr( self ): | |
| 118 self._i.setInputFile( "dummyInFile.fa" ) | |
| 119 self._i.unsetMaskSsr() | |
| 120 self._i.setOutputFile( "dummyOutFile.path" ) | |
| 121 lExp = [ "dummyInFile.fa.cat", "dummyOutFile.path" ] | |
| 122 self._i.setListFilesToKeep() | |
| 123 lObs = self._i.getListFilesToKeep() | |
| 124 lExp.sort() | |
| 125 lObs.sort() | |
| 126 self.assertEqual( lExp, lObs ) | |
| 127 | |
| 128 | |
| 129 def test_setListFilesToRemove( self ): | |
| 130 self._i.setInputFile( "dummyInFile.fa" ) | |
| 131 lExp = [ "dummyInFile.fa.out", \ | |
| 132 "dummyInFile.fa.log", \ | |
| 133 "dummyInFile.fa.stderr", \ | |
| 134 "dummyInFile.fa.ori.out", \ | |
| 135 "dummyInFile.fa.masked", \ | |
| 136 "dummyInFile.fa.tbl", \ | |
| 137 "dummyInFile.fa.ref" ] | |
| 138 self._i.setListFilesToRemove() | |
| 139 lObs = self._i.getListFilesToRemove() | |
| 140 lExp.sort() | |
| 141 lObs.sort() | |
| 142 self.assertEqual( lExp, lObs ) | |
| 143 | |
| 144 | |
| 145 def test_setSummary( self ): | |
| 146 self._i.setInputFile( "dummyInFile.fa" ) | |
| 147 self._i.setSubjectFile( "dummySubjectFile.fa" ) | |
| 148 exp = "input file: %s" % ( self._i.getInputFile() ) | |
| 149 exp += "\nsubject file: %s" % ( self._i.getSubjectFile() ) | |
| 150 exp += "\nnb processors: %i" % ( self._i.getNbProcessors() ) | |
| 151 exp += "\nmask low-complexity DNA or simple repeats" | |
| 152 exp += "\noutput file: %s" % ( "dummyInFile.fa.cat.path" ) | |
| 153 self._i.setSummary() | |
| 154 obs = self._i.getSummary() | |
| 155 self.assertEqual( exp, obs ) | |
| 156 | |
| 157 | |
| 158 def test_setSummary_noMaskSsr( self ): | |
| 159 self._i.setInputFile( "dummyInFile.fa" ) | |
| 160 self._i.setSubjectFile( "dummySubjectFile.fa" ) | |
| 161 self._i.unsetMaskSsr() | |
| 162 exp = "input file: %s" % ( self._i.getInputFile() ) | |
| 163 exp += "\nsubject file: %s" % ( self._i.getSubjectFile() ) | |
| 164 exp += "\nnb processors: %i" % ( self._i.getNbProcessors() ) | |
| 165 exp += "\noutput file: %s" % ( "dummyInFile.fa.cat.align" ) | |
| 166 self._i.setSummary() | |
| 167 obs = self._i.getSummary() | |
| 168 self.assertEqual( exp, obs ) | |
| 169 | |
| 170 if __name__ == "__main__": | |
| 171 unittest.main() |
