@@ -50,20 +50,21 @@ def service_name():
50
50
51
51
52
52
def test_copy_config_to_ext_loggers (stdout , logger , log_level ):
53
- # GIVEN an external logger and powertools logger initialized
53
+ # GIVEN two external loggers and powertools logger initialized
54
54
logger_1 = logger ()
55
55
logger_2 = logger ()
56
56
57
57
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
58
58
59
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
59
+ # WHEN configuration copied from powertools logger to ALL external loggers
60
+ # AND external loggers used
60
61
utils .copy_config_to_registered_loggers (source_logger = powertools_logger )
61
62
msg = "test message1"
62
63
logger_1 .info (msg )
63
64
logger_2 .info (msg )
64
65
logs = capture_multiple_logging_statements_output (stdout )
65
66
66
- # THEN
67
+ # THEN all external loggers used Powertools handler, formatter and log level
67
68
for index , logger in enumerate ([logger_1 , logger_2 ]):
68
69
assert len (logger .handlers ) == 1
69
70
assert type (logger .handlers [0 ]) is logging .StreamHandler
@@ -78,13 +79,14 @@ def test_copy_config_to_ext_loggers_include(stdout, logger, log_level):
78
79
logger = logger ()
79
80
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
80
81
81
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
82
+ # WHEN configuration copied from powertools logger to INCLUDED external loggers
83
+ # AND our external logger used
82
84
utils .copy_config_to_registered_loggers (source_logger = powertools_logger , include = {logger .name })
83
85
msg = "test message2"
84
86
logger .info (msg )
85
87
log = capture_logging_output (stdout )
86
88
87
- # THEN
89
+ # THEN included external loggers used Powertools handler, formatter and log level.
88
90
assert len (logger .handlers ) == 1
89
91
assert type (logger .handlers [0 ]) is logging .StreamHandler
90
92
assert type (logger .handlers [0 ].formatter ) is formatter .LambdaPowertoolsFormatter
@@ -98,10 +100,10 @@ def test_copy_config_to_ext_loggers_wrong_include(stdout, logger, log_level):
98
100
logger = logger ()
99
101
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
100
102
101
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
103
+ # THEN included external loggers used Powertools handler, formatter and log level.
102
104
utils .copy_config_to_registered_loggers (source_logger = powertools_logger , include = {"non-existing-logger" })
103
105
104
- # THEN
106
+ # THEN existing external logger is not modified
105
107
assert not logger .handlers
106
108
107
109
@@ -110,29 +112,30 @@ def test_copy_config_to_ext_loggers_exclude(stdout, logger, log_level):
110
112
logger = logger ()
111
113
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
112
114
113
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
115
+ # WHEN configuration copied from powertools logger to ALL BUT external logger
114
116
utils .copy_config_to_registered_loggers (source_logger = powertools_logger , exclude = {logger .name })
115
117
116
- # THEN
118
+ # THEN external logger is not modified
117
119
assert not logger .handlers
118
120
119
121
120
122
def test_copy_config_to_ext_loggers_include_exclude (stdout , logger , log_level ):
121
- # GIVEN an external logger and powertools logger initialized
123
+ # GIVEN two external loggers and powertools logger initialized
122
124
logger_1 = logger ()
123
125
logger_2 = logger ()
124
126
125
127
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
126
128
127
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
129
+ # WHEN configuration copied from powertools logger to INCLUDED external loggers
130
+ # AND external logger_1 is also in EXCLUDE list
128
131
utils .copy_config_to_registered_loggers (
129
132
source_logger = powertools_logger , include = {logger_1 .name , logger_2 .name }, exclude = {logger_1 .name }
130
133
)
131
134
msg = "test message3"
132
135
logger_2 .info (msg )
133
136
log = capture_logging_output (stdout )
134
137
135
- # THEN
138
+ # THEN logger_1 is not modified and Logger_2 used Powertools handler, formatter and log level
136
139
assert not logger_1 .handlers
137
140
assert len (logger_2 .handlers ) == 1
138
141
assert type (logger_2 .handlers [0 ]) is logging .StreamHandler
@@ -149,10 +152,10 @@ def test_copy_config_to_ext_loggers_clean_old_handlers(stdout, logger, log_level
149
152
logger .addHandler (handler )
150
153
powertools_logger = Logger (service = service_name (), level = log_level .INFO .value , stream = stdout )
151
154
152
- # WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
155
+ # WHEN configuration copied from powertools logger to ALL external loggers
153
156
utils .copy_config_to_registered_loggers (source_logger = powertools_logger )
154
157
155
- # THEN
158
+ # THEN old logger's handler removed and Powertools configuration used instead
156
159
assert len (logger .handlers ) == 1
157
160
assert type (logger .handlers [0 ]) is logging .StreamHandler
158
161
assert type (logger .handlers [0 ].formatter ) is formatter .LambdaPowertoolsFormatter
@@ -164,14 +167,14 @@ def test_copy_config_to_ext_loggers_custom_log_level(stdout, logger, log_level):
164
167
powertools_logger = Logger (service = service_name (), level = log_level .CRITICAL .value , stream = stdout )
165
168
level = log_level .WARNING .name
166
169
167
- # WHEN configuration copied from powertools logger to ALL external loggers
168
- # AND our external logger used with custom log_level
170
+ # WHEN configuration copied from powertools logger to INCLUDED external logger
171
+ # AND external logger used with custom log_level
169
172
utils .copy_config_to_registered_loggers (source_logger = powertools_logger , include = {logger .name }, log_level = level )
170
173
msg = "test message4"
171
174
logger .warning (msg )
172
175
log = capture_logging_output (stdout )
173
176
174
- # THEN
177
+ # THEN external logger used Powertools handler, formatter and CUSTOM log level.
175
178
assert len (logger .handlers ) == 1
176
179
assert type (logger .handlers [0 ]) is logging .StreamHandler
177
180
assert type (logger .handlers [0 ].formatter ) is formatter .LambdaPowertoolsFormatter
0 commit comments