--- /dev/null
+'''
+Created on Dec 2, 2010
+
+@author: sau
+'''
+import unittest
+import os
+from erange import makesitetrack
+
+
+class TestMakeSiteTrack(unittest.TestCase):
+
+ testInputFile = "erangeTestSiteFile"
+ testOutputFile = "erangeTestBedFile"
+
+
+ def setUp(self):
+ self.createCompactInputFile()
+
+
+ def tearDown(self):
+ try:
+ os.remove(self.testInputFile)
+ except OSError:
+ print "site file does not exist"
+
+ try:
+ os.remove(self.testOutputFile)
+ except OSError:
+ print "bed file does not exist"
+
+
+ def createStandardInputFile(self):
+ siteFile = open(self.testInputFile, "w")
+ siteFile.write("#comment line\n")
+ siteFile.write("name\tchr1\t100\t175\t11\t+\t-\n")
+ siteFile.close()
+
+
+ def createCompactInputFile(self):
+ siteFile = open(self.testInputFile, "w")
+ siteFile.write("#comment line\n")
+ siteFile.write("chr1:100-175\t11\t+\t-\n")
+ siteFile.close()
+
+
+ def testMakeSiteTrack(self):
+ self.createCompactInputFile()
+ makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile)
+ bedfile = open(self.testOutputFile)
+ header = 'track name="" visibility=4 itemRgb="On"\n'
+ self.assertEquals(header, bedfile.readline())
+ result = "chr1\t100\t176\t-1\t11\t+\t-\t-\t0,0,0\n"
+ self.assertEquals(result, bedfile.readline())
+
+ makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile, append=True, noHeader=True)
+ bedfile = open(self.testOutputFile)
+ header = bedfile.readline()
+ firstEntry = bedfile.readline()
+ self.assertEquals(firstEntry, bedfile.readline())
+
+
+ def testNonCompactMakeSiteTrack(self):
+ try:
+ os.remove(self.testInputFile)
+ except OSError:
+ print "site file does not exist"
+
+ self.createStandardInputFile()
+ makesitetrack.makesitetrack(self.testInputFile, self.testOutputFile, compact=False, color="255,255,255")
+ bedfile = open(self.testOutputFile)
+ bedfile.readline()
+ result = "chr1\t100\t176\t-1\t1.0\t+\t-\t-\t255,255,255\n"
+ self.assertEquals(result, bedfile.readline())
+
+
+ def testMain(self):
+ self.createCompactInputFile()
+ argv = ["makesitetrack"]
+ self.assertRaises(SystemExit, makesitetrack.main, argv)
+ argv = ["makesitetrack", self.testInputFile, self.testOutputFile]
+ makesitetrack.main(argv)
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestMakeSiteTrack))
+
+ return suite
+
+
+if __name__ == "__main__":
+ #import sys;sys.argv = ['', 'Test.testName']
+ unittest.main()
\ No newline at end of file