don't close file handlers as rpm will handle it
[tools/mic.git] / tests / test_msger.py
1 #!/usr/bin/python
2
3 import os
4 import sys
5 import StringIO
6 import unittest
7 from mic import msger
8
9 def suite():
10     return unittest.makeSuite(MsgerTest)
11
12 class MsgerTest(unittest.TestCase):
13
14     def setUp(self):
15         self.stdout = sys.stdout
16         self.stderr = sys.stderr
17         sys.stdout = StringIO.StringIO()
18         sys.stderr = StringIO.StringIO()
19         msger.set_loglevel('normal')
20         self.loglevel = msger.LOG_LEVEL
21
22     def tearDown(self):
23         msger.LOG_LEVEL = self.loglevel
24         sys.stdout = self.stdout
25         sys.stderr = self.stderr
26
27     def testRaw(self):
28         excepted = "hello\n"
29         msger.raw("hello")
30         self.assertEqual(excepted, sys.stdout.getvalue())
31
32     def testInfo(self):
33         excepted = "Info: hello\n"
34         msger.info("hello")
35         self.assertEqual(excepted, sys.stdout.getvalue())
36
37     def testWarning(self):
38         excepted = "Warning: hello\n"
39         msger.warning("hello")
40         self.assertEqual(excepted, sys.stderr.getvalue())
41
42     def testVerbose(self):
43         excepted = "Verbose: hello\n"
44         msger.verbose("hello")
45         self.assertEqual("", sys.stdout.getvalue())
46         msger.set_loglevel("verbose")
47         msger.verbose("hello")
48         self.assertEqual(excepted, sys.stdout.getvalue())
49
50     def testDebug(self):
51         excepted = "Debug: hello\n"
52         msger.debug("hello")
53         self.assertEqual("", sys.stdout.getvalue())
54         msger.set_loglevel("debug")
55         msger.debug("hello")
56         self.assertEqual(excepted, sys.stderr.getvalue())
57
58     def testLogstderr(self):
59         excepted = "hello\n"
60         cwd = os.getcwd()
61         msger.enable_logstderr(cwd + "/__tmp_err.log")
62         print >>sys.stderr, "hello"
63         msger.disable_logstderr()
64         self.assertEqual(excepted, sys.stderr.getvalue())
65
66     def testLoglevel(self):
67         # test default value
68         self.assertEqual("normal", msger.get_loglevel())
69         # test no effect value
70         msger.set_loglevel("zzzzzz")
71         self.assertEqual("normal", msger.get_loglevel())
72         # test effect value
73         msger.set_loglevel("verbose")
74         self.assertEqual("verbose", msger.get_loglevel())
75         msger.set_loglevel("debug")
76         self.assertEqual("debug", msger.get_loglevel())
77         msger.set_loglevel("quiet")
78         self.assertEqual("quiet", msger.get_loglevel())
79
80 if __name__ == "__main__":
81     unittest.main()
82