1
- import unittest , logging , json , sys
1
+ import unittest
2
+ import logging
3
+ import json
4
+ import sys
2
5
3
6
try :
4
7
import xmlrunner
15
18
import jsonlogger
16
19
import datetime
17
20
21
+
18
22
class TestJsonLogger (unittest .TestCase ):
19
23
def setUp (self ):
20
24
self .logger = logging .getLogger ('logging-test' )
21
25
self .logger .setLevel (logging .DEBUG )
22
26
self .buffer = StringIO ()
23
-
27
+
24
28
self .logHandler = logging .StreamHandler (self .buffer )
25
29
self .logger .addHandler (self .logHandler )
26
30
@@ -55,7 +59,7 @@ def testFormatKeys(self):
55
59
'threadName'
56
60
]
57
61
58
- log_format = lambda x : ['%({0:s})' .format (i ) for i in x ]
62
+ log_format = lambda x : ['%({0:s})' .format (i ) for i in x ]
59
63
custom_format = ' ' .join (log_format (supported_keys ))
60
64
61
65
fr = jsonlogger .JsonFormatter (custom_format )
@@ -69,7 +73,7 @@ def testFormatKeys(self):
69
73
for supported_key in supported_keys :
70
74
if supported_key in log_json :
71
75
self .assertTrue (True )
72
-
76
+
73
77
def testUnknownFormatKey (self ):
74
78
fr = jsonlogger .JsonFormatter ('%(unknown_key)s %(message)s' )
75
79
@@ -84,7 +88,7 @@ def testLogADict(self):
84
88
fr = jsonlogger .JsonFormatter ()
85
89
self .logHandler .setFormatter (fr )
86
90
87
- msg = {"text" :"testing logging" , "num" : 1 , 5 : "9" ,
91
+ msg = {"text" : "testing logging" , "num" : 1 , 5 : "9" ,
88
92
"nested" : {"more" : "data" }}
89
93
self .logger .info (msg )
90
94
logJson = json .loads (self .buffer .getvalue ())
@@ -98,8 +102,8 @@ def testLogExtra(self):
98
102
fr = jsonlogger .JsonFormatter ()
99
103
self .logHandler .setFormatter (fr )
100
104
101
- extra = {"text" :"testing logging" , "num" : 1 , 5 : "9" ,
102
- "nested" : {"more" : "data" }}
105
+ extra = {"text" : "testing logging" , "num" : 1 , 5 : "9" ,
106
+ "nested" : {"more" : "data" }}
103
107
self .logger .info ("hello" , extra = extra )
104
108
logJson = json .loads (self .buffer .getvalue ())
105
109
self .assertEqual (logJson .get ("text" ), extra ["text" ])
@@ -112,27 +116,37 @@ def testJsonDefaultEncoder(self):
112
116
fr = jsonlogger .JsonFormatter ()
113
117
self .logHandler .setFormatter (fr )
114
118
115
- msg = {"adate" : datetime .datetime (1999 , 12 , 31 , 23 , 59 )}
119
+ msg = {"adate" : datetime .datetime (1999 , 12 , 31 , 23 , 59 ),
120
+ "otherdate" : datetime .date (1789 , 7 , 14 ),
121
+ "otherdatetime" : datetime .datetime (1789 , 7 , 14 , 23 , 59 ),
122
+ "otherdatetimeagain" : datetime .datetime (1900 , 1 , 1 )}
116
123
self .logger .info (msg )
117
124
logJson = json .loads (self .buffer .getvalue ())
118
125
self .assertEqual (logJson .get ("adate" ), "1999-12-31T23:59" )
126
+ self .assertEqual (logJson .get ("otherdate" ), "1789-07-14" )
127
+ self .assertEqual (logJson .get ("otherdatetime" ), "1789-07-14T23:59:00" )
128
+ self .assertEqual (logJson .get ("otherdatetimeagain" ),
129
+ "1900-01-01T00:00" )
119
130
120
131
def testJsonCustomDefault (self ):
121
132
def custom (o ):
122
133
return "very custom"
123
134
fr = jsonlogger .JsonFormatter (json_default = custom )
124
135
self .logHandler .setFormatter (fr )
125
136
126
- msg = {"adate" : datetime .datetime (1999 , 12 , 31 , 23 , 59 ), "normal" : "value" }
137
+ msg = {"adate" : datetime .datetime (1999 , 12 , 31 , 23 , 59 ),
138
+ "normal" : "value" }
127
139
self .logger .info (msg )
128
140
logJson = json .loads (self .buffer .getvalue ())
129
141
self .assertEqual (logJson .get ("adate" ), "very custom" )
130
142
self .assertEqual (logJson .get ("normal" ), "value" )
131
143
132
- if __name__ == '__main__' :
133
- if len (sys .argv [1 :]) > 0 :
144
+
145
+ if __name__ == '__main__' :
146
+ if len (sys .argv [1 :]) > 0 :
134
147
if sys .argv [1 ] == 'xml' :
135
- testSuite = unittest .TestLoader ().loadTestsFromTestCase (testJsonLogger )
148
+ testSuite = unittest .TestLoader ().loadTestsFromTestCase (
149
+ testJsonLogger )
136
150
xmlrunner .XMLTestRunner (output = 'reports' ).run (testSuite )
137
151
else :
138
152
unittest .main ()
0 commit comments