Revision 796b5152 test/ganeti.utils.log_unittest.py
b/test/ganeti.utils.log_unittest.py | ||
---|---|---|
26 | 26 |
import logging |
27 | 27 |
import tempfile |
28 | 28 |
import shutil |
29 |
import threading |
|
30 |
from cStringIO import StringIO |
|
29 | 31 |
|
30 | 32 |
from ganeti import constants |
31 | 33 |
from ganeti import errors |
34 |
from ganeti import compat |
|
32 | 35 |
from ganeti import utils |
33 | 36 |
|
34 | 37 |
import testutils |
... | ... | |
192 | 195 |
self.assertTrue(utils.ReadFile(logfile2).endswith("This is a test\n")) |
193 | 196 |
|
194 | 197 |
|
198 |
class TestSetupToolLogging(unittest.TestCase): |
|
199 |
def test(self): |
|
200 |
error_name = logging.getLevelName(logging.ERROR) |
|
201 |
warn_name = logging.getLevelName(logging.WARNING) |
|
202 |
info_name = logging.getLevelName(logging.INFO) |
|
203 |
debug_name = logging.getLevelName(logging.DEBUG) |
|
204 |
|
|
205 |
for debug in [False, True]: |
|
206 |
for verbose in [False, True]: |
|
207 |
logger = logging.Logger("TestLogger") |
|
208 |
buf = StringIO() |
|
209 |
|
|
210 |
utils.SetupToolLogging(debug, verbose, _root_logger=logger, _stream=buf) |
|
211 |
|
|
212 |
logger.error("level=error") |
|
213 |
logger.warning("level=warning") |
|
214 |
logger.info("level=info") |
|
215 |
logger.debug("level=debug") |
|
216 |
|
|
217 |
lines = buf.getvalue().splitlines() |
|
218 |
|
|
219 |
self.assertTrue(compat.all(line.count(":") == 3 for line in lines)) |
|
220 |
|
|
221 |
messages = [line.split(":", 3)[-1].strip() for line in lines] |
|
222 |
|
|
223 |
if debug: |
|
224 |
self.assertEqual(messages, [ |
|
225 |
"%s level=error" % error_name, |
|
226 |
"%s level=warning" % warn_name, |
|
227 |
"%s level=info" % info_name, |
|
228 |
"%s level=debug" % debug_name, |
|
229 |
]) |
|
230 |
elif verbose: |
|
231 |
self.assertEqual(messages, [ |
|
232 |
"%s level=error" % error_name, |
|
233 |
"%s level=warning" % warn_name, |
|
234 |
"%s level=info" % info_name, |
|
235 |
]) |
|
236 |
else: |
|
237 |
self.assertEqual(messages, [ |
|
238 |
"level=error", |
|
239 |
"level=warning", |
|
240 |
]) |
|
241 |
|
|
242 |
def testThreadName(self): |
|
243 |
thread_name = threading.currentThread().getName() |
|
244 |
|
|
245 |
for enable_threadname in [False, True]: |
|
246 |
logger = logging.Logger("TestLogger") |
|
247 |
buf = StringIO() |
|
248 |
|
|
249 |
utils.SetupToolLogging(True, True, threadname=enable_threadname, |
|
250 |
_root_logger=logger, _stream=buf) |
|
251 |
|
|
252 |
logger.debug("test134042376") |
|
253 |
|
|
254 |
lines = buf.getvalue().splitlines() |
|
255 |
self.assertEqual(len(lines), 1) |
|
256 |
|
|
257 |
if enable_threadname: |
|
258 |
self.assertTrue((" %s " % thread_name) in lines[0]) |
|
259 |
else: |
|
260 |
self.assertTrue(thread_name not in lines[0]) |
|
261 |
|
|
262 |
|
|
195 | 263 |
if __name__ == "__main__": |
196 | 264 |
testutils.GanetiTestProgram() |
Also available in: Unified diff