'''
Created on Dec 2, 2010

@author: sau
'''
import unittest
import os
from erange import bedtoregion


class TestBedToRegion(unittest.TestCase):

    testBedFile = "erangeTestBedFile"
    testRegionFile = "erangeTestRegionFile"


    def setUp(self):
        bedfile = open(self.testBedFile, "w")
        bedfile.write("tab\tdelimited\tfields\n")
        bedfile.write("space delimited fields\n")
        bedfile.write("track\n")
        bedfile.write("line after track will not be processed\n")
        bedfile.close()


    def tearDown(self):
        try:
            os.remove(self.testBedFile)
        except OSError:
            print "bed file does not exist"

        try:
            os.remove(self.testRegionFile)
        except OSError:
            print "region file does not exist"


    def testBedToRegion(self):
        bedtoregion.bedToRegion("regionLabel", self.testBedFile, self.testRegionFile)
        resultFile = open(self.testRegionFile)
        regionList = resultFile.readlines()
        self.assertEquals(2, len(regionList))
        self.assertEquals("regionLabel1\ttab\tdelimited\tfields\n", regionList[0])
        self.assertEquals("regionLabel2\tspace\tdelimited\tfields\n", regionList[1])


    def testMain(self):
        argv = ["bedtoregion"]
        self.assertRaises(SystemExit, bedtoregion.main, argv)
        argv = ["bedtoregion", "regionLabel", self.testBedFile, self.testRegionFile]
        bedtoregion.main(argv)
        resultFile = open(self.testRegionFile)
        self.assertEquals(2, len(resultFile.readlines()))


def suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.makeSuite(TestBedToRegion))

    return suite


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()