view commons/tools/tests/Test_F_GetSpecificTELibAccordingToAnnotation.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
line wrap: on
line source

import subprocess
import unittest
import os
from commons.core.utils.FileUtils import FileUtils
from commons.core.sql.DbMySql import DbMySql
from commons.tools.GetSpecificTELibAccordingToAnnotation import GetSpecificTELibAccordingToAnnotation

class Test_F_GetSpecificTELibAccordingToAnnotation(unittest.TestCase):
    
    def setUp(self):
        self._expFileName_FullLengthCopy = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithFullLengthCopy.txt" % os.environ["REPET_DATA"]
        self._expFileName_Copy = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithCopy.txt" % os.environ["REPET_DATA"]
        self._expFileName_FullLengthFrag = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithFullLengthFrag.txt" % os.environ["REPET_DATA"]
        self._expFastaFileName_FullLengthCopy = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithFullLengthCopy.fa" % os.environ["REPET_DATA"]
        self._expFastaFileName_Copy = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithCopy.fa" % os.environ["REPET_DATA"]
        self._expFastaFileName_FullLengthFrag = "%s/Tools/GiveInfoTeAnnotFile_ConsensusWithFullLengthFrag.fa" % os.environ["REPET_DATA"]
        
        self._inFileName = "%s/Tools/GiveInfoTeAnnotFile.txt" % os.environ["REPET_DATA"]
        inputFastaFileName = "input_TEannot_refTEs.fa"
        os.symlink(self._expFastaFileName_Copy, inputFastaFileName)
        self._iDb = DbMySql()
        self._tableName = "Dummy_Atha_refTEs_seq"
        self._iDb.createTable(self._tableName, "seq", inputFastaFileName, True)
        os.remove(inputFastaFileName)      
        
        self._obsFileName_FullLengthCopy = "%s_FullLengthCopy.txt" % os.path.splitext(os.path.basename(self._inFileName))[0]
        self._obsFileName_Copy = "%s_OneCopyAndMore.txt" % os.path.splitext(os.path.basename(self._inFileName))[0]
        self._obsFileName_FullLengthFrag = "%s_FullLengthFrag.txt" % os.path.splitext(os.path.basename(self._inFileName))[0]
        self._obsFastaFileName_FullLengthCopy = "%s.fa" % os.path.splitext(self._obsFileName_FullLengthCopy)[0]
        self._obsFastaFileName_Copy = "%s.fa" % os.path.splitext(self._obsFileName_Copy)[0]
        self._obsFastaFileName_FullLengthFrag = "%s.fa" % os.path.splitext(self._obsFileName_FullLengthFrag)[0]
        
    def tearDown(self):
        self._iDb.dropTable(self._tableName)
        self._iDb.close()
        os.remove(self._obsFileName_FullLengthCopy)
        os.remove(self._obsFileName_Copy)
        os.remove(self._obsFileName_FullLengthFrag)
        os.remove(self._obsFastaFileName_FullLengthCopy)
        os.remove(self._obsFastaFileName_Copy)
        os.remove(self._obsFastaFileName_FullLengthFrag)

    def test_run(self):
        iGetTELib = GetSpecificTELibAccordingToAnnotation(self._inFileName)
        iGetTELib.setTableName(self._tableName)
        iGetTELib.run()

        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_FullLengthCopy, self._obsFileName_FullLengthCopy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_Copy, self._obsFileName_Copy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_FullLengthFrag, self._obsFileName_FullLengthFrag))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_FullLengthCopy, self._obsFastaFileName_FullLengthCopy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_Copy, self._obsFastaFileName_Copy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_FullLengthFrag, self._obsFastaFileName_FullLengthFrag))

    def test_run_as_script(self):
        cmd = "GetSpecificTELibAccordingToAnnotation.py -i %s -t %s -v 4" % (self._inFileName, self._tableName)
        subprocess.call(cmd, shell = True)

        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_FullLengthCopy, self._obsFileName_FullLengthCopy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_Copy, self._obsFileName_Copy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFileName_FullLengthFrag, self._obsFileName_FullLengthFrag))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_FullLengthCopy, self._obsFastaFileName_FullLengthCopy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_Copy, self._obsFastaFileName_Copy))
        self.assertTrue(FileUtils.are2FilesIdentical(self._expFastaFileName_FullLengthFrag, self._obsFastaFileName_FullLengthFrag))

if __name__ == "__main__":
    unittest.main()