18
|
1 import unittest
|
|
2 import re
|
|
3 import os
|
|
4 from commons.pyRepetUnit.hmmer.check.OldDetectFeatureConfigChecker import DetectFeatureConfigChecker
|
|
5 from commons.core.checker.ConfigException import ConfigException
|
|
6
|
|
7 class Test_DetectFeaturesConfigChecker(unittest.TestCase):
|
|
8
|
|
9 def setUp(self):
|
|
10 self._detectFeatureConfigChecker = DetectFeatureConfigChecker()
|
|
11
|
|
12 def testWithDefaultLogger (self):
|
|
13 lineFound = False
|
|
14 try:
|
|
15 self._detectFeatureConfigChecker.check("dummyConfig")
|
|
16 except ConfigException, e:
|
|
17 for msg in e.messages:
|
|
18 if (re.match("CONFIG FILE not found.*", msg)):
|
|
19 lineFound = True
|
|
20 self.assertTrue(lineFound)
|
|
21
|
|
22 def testWithNoConfigFile(self):
|
|
23 lineFound = False
|
|
24 try:
|
|
25 self._detectFeatureConfigChecker.check("dummyConfig")
|
|
26 except ConfigException, e:
|
|
27 for msg in e.messages:
|
|
28 if (re.match("CONFIG FILE not found.*", msg)):
|
|
29 lineFound = True
|
|
30 self.assertTrue(lineFound)
|
|
31
|
|
32 def testWithNoSectionInConfigFile(self):
|
|
33 config = open("config.cfg", "w");
|
|
34 config.close()
|
|
35 lineFound = False
|
|
36 try:
|
|
37 self._detectFeatureConfigChecker.check("config.cfg")
|
|
38 except ConfigException, e:
|
|
39 for msg in e.messages:
|
|
40 if (re.match("\[detect_features\] section not found.*", msg)):
|
|
41 lineFound = True
|
|
42 self.assertTrue(lineFound)
|
|
43 os.remove("config.cfg")
|
|
44
|
|
45 def testMissingOptionsInConfig (self):
|
|
46 dict = {}
|
|
47 MockConfigFile("config.cfg", dict)
|
|
48 hmmProfilsFound = False
|
|
49 TE_BLRnFound = False
|
|
50 try :
|
|
51 self._detectFeatureConfigChecker.check("config.cfg")
|
|
52 except ConfigException, e:
|
|
53 for msg in e.messages:
|
|
54 if (re.match("\[detect_features\] - No option 'te_hmmer' in section: 'detect_features'", msg)):
|
|
55 hmmProfilsFound = True
|
|
56 if (re.match("\[detect_features\] - No option 'te_blrn' in section: 'detect_features'", msg)):
|
|
57 TE_BLRnFound = True
|
|
58 self.assertTrue(hmmProfilsFound)
|
|
59 self.assertTrue(TE_BLRnFound)
|
|
60 os.remove("config.cfg")
|
|
61
|
|
62 def testOptionsIfHmmProfilsSetAtYESInConfig (self):
|
|
63
|
|
64 dict = {
|
|
65 "TE_HMMER" : "yes",
|
|
66 "TE_BLRn" : "no"
|
|
67 }
|
|
68
|
|
69 profilDatabankFound = False
|
|
70 evalueFound = False
|
|
71 MockConfigFile("config.cfg", dict)
|
|
72 try :
|
|
73 self._detectFeatureConfigChecker.check("config.cfg")
|
|
74 except ConfigException, e:
|
|
75 for msg in e.messages:
|
|
76 print msg
|
|
77 if (re.match("\[detect_features\] - No option 'te_hmm_profiles' in section: 'detect_features' whereas te_hmmer is set", msg)):
|
|
78 profilDatabankFound = True
|
|
79 if (re.match("\[detect_features\] - No option 'te_hmmer_evalue' in section: 'detect_features' whereas te_hmmer is set - Default value will be set", msg)):
|
|
80 evalueFound = True
|
|
81 self.assertTrue(profilDatabankFound)
|
|
82 self.assertTrue(evalueFound)
|
|
83 os.remove("config.cfg")
|
|
84
|
|
85
|
|
86 def testOptionsIfHmmProfilsSetAtNOInConfig (self):
|
|
87 profilDatabankFound = False
|
|
88 inputFormatFound = False
|
|
89 evalueFound = False
|
|
90 dict = {
|
|
91 "TE_HMMER" : "no"
|
|
92 }
|
|
93 MockConfigFile("config.cfg", dict)
|
|
94 try :
|
|
95 self._detectFeatureConfigChecker.check("config.cfg")
|
|
96 except ConfigException, e:
|
|
97 for msg in e.messages:
|
|
98 if (re.match(".+INFO \[detect_features\] - No option 'te_hmm_profiles' in section: 'detect_features' whereas te_hmmer is set", msg)):
|
|
99 profilDatabankFound = True
|
|
100 if (re.match(".+INFO \[detect_features\] - No option 'te_hmmer_evalue' in section: 'detect_features' whereas te_hmmer is set - Default value will be set", msg)):
|
|
101 evalueFound = True
|
|
102 self.assertFalse(profilDatabankFound)
|
|
103 self.assertFalse(inputFormatFound)
|
|
104 self.assertFalse(evalueFound)
|
|
105 os.remove("config.cfg")
|
|
106
|
|
107 def testTE_BLRnAndTE_hmmerAtNoInConfig (self):
|
|
108
|
|
109 dict = {
|
|
110 "TE_HMMER" : "no",
|
|
111 "TE_BLRn" : "no"
|
|
112 }
|
|
113
|
|
114 exceptionNotRaised = True
|
|
115 MockConfigFile("config.cfg", dict)
|
|
116 try :
|
|
117 self._detectFeatureConfigChecker.check("config.cfg")
|
|
118 except ConfigException:
|
|
119 exceptionNotRaised = False
|
|
120
|
|
121 self.assertTrue(exceptionNotRaised)
|
|
122
|
|
123 os.remove("config.cfg")
|
|
124
|
|
125 class MockConfigFile:
|
|
126
|
|
127 def __init__ (self, fileName, optionsDict):
|
|
128
|
|
129 self._fileName = fileName
|
|
130 config = open(fileName, "w");
|
|
131 config.write("[detect_features]\n")
|
|
132 for key in optionsDict.keys():
|
|
133 config.write(key + ":" + optionsDict[key] + "\n")
|
|
134 config.close()
|
|
135
|
|
136
|
|
137 if __name__ == "__main__":
|
|
138 unittest.main()
|