diff options
author | Six <unknown> | 2010-04-10 17:05:55 -0400 |
---|---|---|
committer | Six <unknown> | 2010-04-10 17:05:55 -0400 |
commit | 418bb176021361f539fe5de13c6af0b316d8e4be (patch) | |
tree | bf2eb2bda93c523f739b7592d4d6bfd138e6641f /test/test_config/test_log.py | |
download | dodai-macsupport-418bb176021361f539fe5de13c6af0b316d8e4be.tar.bz2 dodai-macsupport-418bb176021361f539fe5de13c6af0b316d8e4be.tar.xz dodai-macsupport-418bb176021361f539fe5de13c6af0b316d8e4be.zip |
Initial import of source.
Diffstat (limited to 'test/test_config/test_log.py')
-rw-r--r-- | test/test_config/test_log.py | 147 |
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 | |||
18 | import unittest | ||
19 | import os | ||
20 | import logging | ||
21 | from logging import Logger | ||
22 | from dodai.config.log import ConfigLog | ||
23 | from dodai.config.log import NoDirectoryExistException | ||
24 | from dodai.config.log import DirectoryNotSetException | ||
25 | from dodai.config.log import InvalidLevelException | ||
26 | from logging.handlers import RotatingFileHandler | ||
27 | from logging import StreamHandler | ||
28 | |||
29 | class 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') | ||