aboutsummaryrefslogtreecommitdiff
path: root/test/test_config/test_log.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_config/test_log.py')
-rw-r--r--test/test_config/test_log.py147
1 files changed, 147 insertions, 0 deletions
diff --git a/test/test_config/test_log.py b/test/test_config/test_log.py
new file mode 100644
index 0000000..d3c46bc
--- /dev/null
+++ b/test/test_config/test_log.py
@@ -0,0 +1,147 @@
1# Copyright (C) 2010 Leonard Thomas
2#
3# This file is part of Dodai.
4#
5# Dodai is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# Dodai is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with Dodai. If not, see <http://www.gnu.org/licenses/>.
17
18import unittest
19import os
20import logging
21from logging import Logger
22from dodai.config.log import ConfigLog
23from dodai.config.log import NoDirectoryExistException
24from dodai.config.log import DirectoryNotSetException
25from dodai.config.log import InvalidLevelException
26from logging.handlers import RotatingFileHandler
27from logging import StreamHandler
28
29class TestConfigLog(unittest.TestCase):
30
31
32 def setUp(self):
33 self.obj = ConfigLog()
34 self.path = os.path.dirname(__file__)
35 self.filename = 'test_log_file'
36 self.filepath = os.path.join(self.path, self.filename)
37
38 def tearDown(self):
39 if os.path.isfile(self.filepath):
40 os.remove(self.filepath)
41
42 def test_set_log_level_one(self):
43 self.obj.set_log_level(logging.INFO)
44 self.assertTrue(self.obj.log_level == logging.INFO)
45
46 def test_set_log_level_two(self):
47 self.obj.set_log_level('wArnIng')
48 self.assertTrue(self.obj.log_level == logging.WARNING)
49
50 def test_set_log_level_three(self):
51 default = self.obj.log_level
52 self.obj.set_log_level('i08w9umY3ngas')
53 self.assertTrue(self.obj.log_level == default)
54
55 def test_fetch_log_level_one(self):
56 level = self.obj._fetch_log_level(logging.DEBUG)
57 self.assertTrue(level == logging.DEBUG)
58
59 def test_fetch_log_level_two(self):
60 level = self.obj._fetch_log_level('ErRoR')
61 self.assertTrue(level == logging.ERROR)
62
63 def test_fetch_log_level_three(self):
64 self.failUnlessRaises(InvalidLevelException,
65 self.obj._fetch_log_level,
66 'ba_ri08w9as')
67
68 def test_get_file_message_format(self):
69 default = self.obj.LEVELS[logging.DEBUG][1]
70 out = self.obj.get_file_message_format(logging.DEBUG)
71 self.assertTrue(default == out)
72
73 def test_get_screen_message_format(self):
74 default = self.obj.LEVELS[logging.WARNING][2]
75 out = self.obj.get_screen_message_format(logging.WARNING)
76 self.assertTrue(default == out)
77
78 def test_set_directory_one(self):
79 self.obj.set_directory(self.path)
80 self.assertTrue(self.obj.directory == self.path)
81
82 def test_set_directory_two(self):
83 self.failUnlessRaises(NoDirectoryExistException,
84 self.obj.set_directory,
85 __file__)
86
87 def test_load_one(self):
88 log = self.obj.load('test')
89 self.assertTrue(isinstance(log, Logger))
90
91 def test_build_filepath_one(self):
92 path = self.obj._build_filepath(self.filepath)
93 self.assertTrue(self.filepath == path)
94
95 def test_build_filepath_two(self):
96 self.obj.set_directory(self.path)
97 path = self.obj._build_filepath(self.filename)
98 self.assertTrue(self.filepath == path)
99
100 def test_build_filepath_three(self):
101 self.failUnlessRaises(NoDirectoryExistException,
102 self.obj._build_filepath,
103 os.path.join(__file__, 'blah'))
104
105 def test_build_filepath_four(self):
106 self.failUnlessRaises(DirectoryNotSetException,
107 self.obj._build_filepath,
108 self.filename)
109
110 def test_attach_file_handler(self):
111 self.obj.set_log_level(logging.WARNING)
112 self.obj.set_directory(self.path)
113 log = self.obj.load('test')
114 self.obj.attach_file_handler(log, self.filename)
115 handlers = log.handlers
116 has_stream = False
117 for handle in handlers:
118 print handle
119 if isinstance(handle, RotatingFileHandler):
120 has_stream = True
121 self.assertTrue(has_stream, 'RotatingFileHandler is missing')
122
123 def test_attach_screen_handler_one(self):
124 self.obj.set_log_level(logging.DEBUG)
125 self.obj.set_directory(self.path)
126 log = self.obj.load('testing')
127 self.obj.attach_screen_handler(log, logging.CRITICAL)
128 handlers = log.handlers
129 has_stream = False
130 for handle in handlers:
131 print handle
132 if isinstance(handle, StreamHandler):
133 has_stream = True
134 self.assertTrue(has_stream, 'StreamHandler is missing')
135
136 def test_attach_screen_handler_two(self):
137 self.obj.set_log_level(logging.DEBUG)
138 self.obj.set_directory(self.path)
139 log = self.obj.load('testing')
140 self.obj.attach_screen_handler(log)
141 handlers = log.handlers
142 has_stream = False
143 for handle in handlers:
144 print handle
145 if isinstance(handle, StreamHandler):
146 has_stream = True
147 self.assertTrue(has_stream, 'StreamHandler is missing')