
import unittest
import os
from erange import featureIntersects


class TestFeatureIntersects(unittest.TestCase):

    testInputFile = "erangeTestFeatureIntersects"


    def setUp(self):
        cdffile = open(self.testInputFile, "w")
        cdffile.write("line1\tchr1\t30\t60\n")
        cdffile.write("line2\tchr1\t90\t99\n")
        cdffile.write("line3\tchr1\t5\t80\n")
        cdffile.write("line4\tchr2\t10\t14\n")
        cdffile.write("line4\tnot to be processed\n")
        cdffile.write("line5\tchr2\t10\t14\n")
        cdffile.close()


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


    #TODO: write test
    def testFeatureIntersects(self):
        pass


    #TODO: write test
    def testGetPositionList(self):
        pass


    #TODO: write test
    def testMain(self):
        argv = ["cdfdist"]
        self.assertRaises(SystemExit, featureIntersects.main, argv)
        argv = ["cdfdist", self.testInputFile]
        featureIntersects.main(argv)


    def testMakeParser(self):
        parser = featureIntersects.makeParser("")
        argv = []
        (options, args) = parser.parse_args(argv)
        self.assertEqual([], args)
        argv = [self.testInputFile]
        (options, args) = parser.parse_args(argv)
        self.assertEqual(self.testInputFile, args[0])
        self.assertEqual("TFBSCONSSITES", options.cistype)
        self.assertEqual(100, options.radius)
        argv = [self.testInputFile, "--cistype", "test", "--radius", "50"]
        (options, args) = parser.parse_args(argv)
        self.assertEqual("test", options.cistype)
        self.assertEqual(50, options.radius)


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

    return suite


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