8 from erange import makesitetrack
11 class TestMakeSiteTrack(unittest.TestCase):
13 testInputFile = "erangeTestSiteFile"
14 testOutputFile = "erangeTestBedFile"
18 self.createCompactInputFile()
23 os.remove(self.testInputFile)
25 print "site file does not exist"
28 os.remove(self.testOutputFile)
30 print "bed file does not exist"
33 def createStandardInputFile(self):
34 siteFile = open(self.testInputFile, "w")
35 siteFile.write("#comment line\n")
36 siteFile.write("name\tchr1\t100\t175\t11\t+\t-\n")
40 def createCompactInputFile(self):
41 siteFile = open(self.testInputFile, "w")
42 siteFile.write("#comment line\n")
43 siteFile.write("chr1:100-175\t11\t+\t-\n")
47 def testMakeSiteTrack(self):
48 self.createCompactInputFile()
49 makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile)
50 bedfile = open(self.testOutputFile)
51 header = 'track name="" visibility=4 itemRgb="On"\n'
52 self.assertEquals(header, bedfile.readline())
53 result = "chr1\t100\t176\t-1\t11\t+\t-\t-\t0,0,0\n"
54 self.assertEquals(result, bedfile.readline())
56 makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile, append=True, noHeader=True)
57 bedfile = open(self.testOutputFile)
58 header = bedfile.readline()
59 firstEntry = bedfile.readline()
60 self.assertEquals(firstEntry, bedfile.readline())
63 def testNonCompactMakeSiteTrack(self):
65 os.remove(self.testInputFile)
67 print "site file does not exist"
69 self.createStandardInputFile()
70 makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile, compact=False, color="255,255,255")
71 bedfile = open(self.testOutputFile)
73 result = "chr1\t100\t176\t-1\t1.0\t+\t-\t-\t255,255,255\n"
74 self.assertEquals(result, bedfile.readline())
78 self.createCompactInputFile()
79 argv = ["makesitetrack"]
80 self.assertRaises(SystemExit, makesitetrack.main, argv)
81 argv = ["makesitetrack", self.testInputFile, self.testOutputFile]
82 makesitetrack.main(argv)
86 suite = unittest.TestSuite()
87 suite.addTest(unittest.makeSuite(TestMakeSiteTrack))
92 if __name__ == "__main__":
93 #import sys;sys.argv = ['', 'Test.testName']