erange version 4.0a dev release
[erange.git] / test / testAnalyzeGO.py
1 '''
2 Created on Aug 26, 2010
3
4 @author: sau
5 '''
6 import unittest
7 import os
8 from erange import analyzego
9
10
11 class TestAnalyzeGO(unittest.TestCase):
12     genome = "celegans"
13     prefix = "testGO"
14     inFileName = "testAnayzeGOInput.txt"
15
16     def setUp(self):
17         infile = open(self.inFileName, "w")
18         infile.close()
19
20
21     def tearDown(self):
22         try:
23             os.remove(self.inFileName)
24         except OSError:
25             pass
26
27         try:
28             os.remove("%s.gostat" % self.prefix)
29         except OSError:
30             pass
31
32         try:
33             os.remove("%s.gozscore" % self.prefix)
34         except OSError:
35             pass
36
37         try:
38             os.remove("%s.gosig" % self.prefix)
39         except OSError:
40             pass
41
42
43     #TODO: write more tests
44     def testAnalyzeGO(self):
45         geneInfoList = []
46         analyzego.analyzeGO(self.genome, geneInfoList, self.prefix)
47         self.assertRaises(IOError, open, "%s.gostat" % self.prefix, "r")
48         self.assertRaises(IOError, open, "%s.gozscore" % self.prefix, "r")
49         self.assertRaises(IOError, open, "%s.gosig" % self.prefix, "r")
50
51         geneInfoList = ["worm\tgeneID"]
52         analyzego.analyzeGO(self.genome, geneInfoList, self.prefix)
53         statfile = open("%s.gostat" % self.prefix, "r")
54         stats = statfile.readlines()
55         print len(stats)
56
57         statfile.close()
58         scorefile = open("%s.gozscore" % self.prefix, "r")
59         scores = scorefile.readlines()
60         print len(scores)
61
62         scorefile.close()
63         sigfile = open("%s.gosig" % self.prefix, "r")
64         sigs = sigfile.readlines()
65         print len(sigs)
66
67         sigfile.close()
68
69
70     def testMain(self):
71         argv = ["analyzego", self.genome, self.inFileName, self.prefix]
72         analyzego.main(argv)
73
74
75 def suite():
76     suite = unittest.TestSuite()
77     suite.addTest(unittest.makeSuite(TestAnalyzeGO))
78
79     return suite
80
81
82 if __name__ == "__main__":
83     #import sys;sys.argv = ['', 'Test.testName']
84     unittest.main()