1+ import json
12import logging
23import os
34import time
4- import pytest
55
66import structlog
77from structlog .testing import ReturnLogger
1212
1313@freeze_time ('2023-01-01 19:00:00' )
1414class TestLogHelper :
15- @pytest .fixture
16- def mock_logger (self , mocker ):
17- mocker .patch ('src.nypl_py_utils.functions.log_helper.structlog.get_logger' , return_value = ReturnLogger )
18-
19- def test_json_logging (self ):
15+ def test_json_logging (self , capsys ):
2016 logger = create_log ('test_log' , json = True )
21- log = logger .info ('testtt' , some = "json" )
22- print ('capture_logs' , log )
23- assert False
24- # assert log.get("message") == 'test'
25- # assert log.get("some") == 'json'
26- # assert log.get('level') == 'info'
27- # assert log.get('timestamp') == '2023-01-01 19:00:00Z'
17+ logger .info ('test' , some = "json" )
18+ output = json .loads (capsys .readouterr ().out )
19+ assert output .get ("message" ) == 'test'
20+ assert output .get ("some" ) == 'json'
21+ assert output .get ('level' ) == 'info'
22+ assert output .get ('timestamp' ) == '2023-01-01T19:00:00Z'
2823
2924 def test_default_logging (self , caplog ):
3025 logger = create_log ('test_log' )
@@ -35,7 +30,6 @@ def test_default_logging(self, caplog):
3530 # freeze_time changes the utc time, while the logger uses local time by
3631 # default, so force the logger to use utc time
3732 logger .handlers [0 ].formatter .converter = time .gmtime
38- print (caplog .records )
3933 assert len (caplog .records ) == 1
4034 assert logger .handlers [0 ].format (caplog .records [0 ]) == \
4135 '2023-01-01 19:00:00,000 | test_log | INFO: Test info message'
0 commit comments