5
5
import importlib
6
6
import json
7
7
import logging
8
+ import logging .config
8
9
import os
9
10
import re
10
11
import tempfile
@@ -1354,7 +1355,6 @@ def test_log_level(self, mock_stderr, mock_stdout):
1354
1355
logger .debug ("debug message" )
1355
1356
logger .info ("info message" )
1356
1357
1357
- # print("some ", mock_stdout.getvalue())
1358
1358
data = json .loads (mock_stdout .getvalue ())
1359
1359
data .pop ("timestamp" )
1360
1360
@@ -1369,6 +1369,77 @@ def test_log_level(self, mock_stderr, mock_stdout):
1369
1369
)
1370
1370
self .assertEqual (mock_stderr .getvalue (), "" )
1371
1371
1372
+ @patch ("sys.stdout" , new_callable = StringIO )
1373
+ @patch ("sys.stderr" , new_callable = StringIO )
1374
+ def test_set_log_level_manually (self , mock_stderr , mock_stdout ):
1375
+ logger = logging .getLogger ("test.logger" )
1376
+
1377
+ # Changing log level after `bootstrap.setup_logging`
1378
+ logging .getLogger ().setLevel (logging .FATAL )
1379
+
1380
+ logger .debug ("debug message" )
1381
+ logger .info ("info message" )
1382
+ logger .warning ("warning message" )
1383
+ logger .error ("error message" )
1384
+ logger .fatal ("fatal message" )
1385
+
1386
+ data = json .loads (mock_stdout .getvalue ())
1387
+ data .pop ("timestamp" )
1388
+
1389
+ self .assertEqual (
1390
+ data ,
1391
+ {
1392
+ "level" : "FATAL" ,
1393
+ "logger" : "test.logger" ,
1394
+ "message" : "fatal message" ,
1395
+ "requestId" : "" ,
1396
+ },
1397
+ )
1398
+ self .assertEqual (mock_stderr .getvalue (), "" )
1399
+
1400
+
1401
+ @patch ("sys.stdout" , new_callable = StringIO )
1402
+ @patch ("sys.stderr" , new_callable = StringIO )
1403
+ def test_set_log_level_with_dictConfig (self , mock_stderr , mock_stdout ):
1404
+ # Changing log level after `bootstrap.setup_logging`
1405
+ logging .config .dictConfig (
1406
+ {
1407
+ "version" : 1 ,
1408
+ "disable_existing_loggers" : False ,
1409
+ "formatters" : {
1410
+ "simple" : {
1411
+ "format" : "%(levelname)-8s - %(message)s"
1412
+ }
1413
+ },
1414
+ "handlers" : {
1415
+ "stdout" : {
1416
+ "class" : "logging.StreamHandler" ,
1417
+ "formatter" : "simple" ,
1418
+ },
1419
+ },
1420
+ "root" : {
1421
+ "level" : "FATAL" ,
1422
+ "handlers" : [
1423
+ "stdout" ,
1424
+ ]
1425
+ }
1426
+ }
1427
+ )
1428
+
1429
+ logger = logging .getLogger ("test.logger" )
1430
+ logger .debug ("debug message" )
1431
+ logger .info ("info message" )
1432
+ logger .warning ("warning message" )
1433
+ logger .error ("error message" )
1434
+ logger .fatal ("fatal message" )
1435
+
1436
+ data = mock_stderr .getvalue ()
1437
+ self .assertEqual (
1438
+ data ,
1439
+ 'FATAL - fatal message\n ' ,
1440
+ )
1441
+ self .assertEqual (mock_stdout .getvalue (), "" )
1442
+
1372
1443
1373
1444
class TestBootstrapModule (unittest .TestCase ):
1374
1445
@patch ("awslambdaric.bootstrap.handle_event_request" )
0 commit comments