Skip to content

Commit cda0d7c

Browse files
author
Michael Brewer
authored
Merge branch 'awslabs:develop' into fix-event-handler
2 parents ac8255f + d2d6e34 commit cda0d7c

File tree

1 file changed

+42
-51
lines changed

1 file changed

+42
-51
lines changed

Diff for: tests/functional/test_logger_utils.py

+42-51
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ class LogLevel(Enum):
3030
@pytest.fixture
3131
def logger(stdout, log_level):
3232
def _logger():
33-
logging.basicConfig(stream=stdout, level=log_level.NOTSET.value)
34-
logger = logging.getLogger(name=service_name())
35-
return logger
33+
logging.basicConfig(stream=stdout, level=log_level.INFO.value)
34+
return logging.getLogger(name=service_name())
3635

3736
return _logger
3837

@@ -51,142 +50,134 @@ def service_name():
5150

5251

5352
def test_copy_config_to_ext_loggers(stdout, logger, log_level):
54-
55-
msg = "test message"
56-
57-
# GIVEN a external logger and powertools logger initialized
53+
# GIVEN two external loggers and powertools logger initialized
5854
logger_1 = logger()
5955
logger_2 = logger()
6056

6157
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
6258

63-
# 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
6461
utils.copy_config_to_registered_loggers(source_logger=powertools_logger)
62+
msg = "test message1"
6563
logger_1.info(msg)
6664
logger_2.info(msg)
6765
logs = capture_multiple_logging_statements_output(stdout)
6866

69-
# THEN
67+
# THEN all external loggers used Powertools handler, formatter and log level
7068
for index, logger in enumerate([logger_1, logger_2]):
7169
assert len(logger.handlers) == 1
72-
assert type(logger.handlers[0]) is logging.StreamHandler
73-
assert type(logger.handlers[0].formatter) is formatter.LambdaPowertoolsFormatter
70+
assert isinstance(logger.handlers[0], logging.StreamHandler)
71+
assert isinstance(logger.handlers[0].formatter, formatter.LambdaPowertoolsFormatter)
7472
assert logger.level == log_level.INFO.value
7573
assert logs[index]["message"] == msg
7674
assert logs[index]["level"] == log_level.INFO.name
7775

7876

7977
def test_copy_config_to_ext_loggers_include(stdout, logger, log_level):
80-
81-
msg = "test message"
82-
83-
# GIVEN a external logger and powertools logger initialized
78+
# GIVEN an external logger and powertools logger initialized
8479
logger = logger()
8580
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
8681

87-
# 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
8884
utils.copy_config_to_registered_loggers(source_logger=powertools_logger, include={logger.name})
85+
msg = "test message2"
8986
logger.info(msg)
9087
log = capture_logging_output(stdout)
9188

92-
# THEN
89+
# THEN included external loggers used Powertools handler, formatter and log level.
9390
assert len(logger.handlers) == 1
94-
assert type(logger.handlers[0]) is logging.StreamHandler
95-
assert type(logger.handlers[0].formatter) is formatter.LambdaPowertoolsFormatter
91+
assert isinstance(logger.handlers[0], logging.StreamHandler)
92+
assert isinstance(logger.handlers[0].formatter, formatter.LambdaPowertoolsFormatter)
9693
assert logger.level == log_level.INFO.value
9794
assert log["message"] == msg
9895
assert log["level"] == log_level.INFO.name
9996

10097

10198
def test_copy_config_to_ext_loggers_wrong_include(stdout, logger, log_level):
102-
103-
# GIVEN a external logger and powertools logger initialized
99+
# GIVEN an external logger and powertools logger initialized
104100
logger = logger()
105101
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
106102

107-
# WHEN configuration copied from powertools logger to ALL external loggers AND our external logger used
103+
# WHEN configuration copied from powertools logger to INCLUDED NON EXISTING external loggers
108104
utils.copy_config_to_registered_loggers(source_logger=powertools_logger, include={"non-existing-logger"})
109105

110-
# THEN
106+
# THEN existing external logger is not modified
111107
assert not logger.handlers
112108

113109

114110
def test_copy_config_to_ext_loggers_exclude(stdout, logger, log_level):
115-
116-
# GIVEN a external logger and powertools logger initialized
111+
# GIVEN an external logger and powertools logger initialized
117112
logger = logger()
118113
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
119114

120-
# 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
121116
utils.copy_config_to_registered_loggers(source_logger=powertools_logger, exclude={logger.name})
122117

123-
# THEN
118+
# THEN external logger is not modified
124119
assert not logger.handlers
125120

126121

127122
def test_copy_config_to_ext_loggers_include_exclude(stdout, logger, log_level):
128-
129-
msg = "test message"
130-
131-
# GIVEN a external logger and powertools logger initialized
123+
# GIVEN two external loggers and powertools logger initialized
132124
logger_1 = logger()
133125
logger_2 = logger()
134126

135127
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
136128

137-
# 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
138131
utils.copy_config_to_registered_loggers(
139132
source_logger=powertools_logger, include={logger_1.name, logger_2.name}, exclude={logger_1.name}
140133
)
134+
msg = "test message3"
141135
logger_2.info(msg)
142136
log = capture_logging_output(stdout)
143137

144-
# THEN
138+
# THEN logger_1 is not modified and Logger_2 used Powertools handler, formatter and log level
145139
assert not logger_1.handlers
146140
assert len(logger_2.handlers) == 1
147-
assert type(logger_2.handlers[0]) is logging.StreamHandler
148-
assert type(logger_2.handlers[0].formatter) is formatter.LambdaPowertoolsFormatter
141+
assert isinstance(logger_2.handlers[0], logging.StreamHandler)
142+
assert isinstance(logger_2.handlers[0].formatter, formatter.LambdaPowertoolsFormatter)
149143
assert logger_2.level == log_level.INFO.value
150144
assert log["message"] == msg
151145
assert log["level"] == log_level.INFO.name
152146

153147

154148
def test_copy_config_to_ext_loggers_clean_old_handlers(stdout, logger, log_level):
155-
156-
# GIVEN a external logger with handler and powertools logger initialized
149+
# GIVEN an external logger with handler and powertools logger initialized
157150
logger = logger()
158-
handler = logging.FileHandler("logfile")
151+
handler = logging.NullHandler()
159152
logger.addHandler(handler)
160153
powertools_logger = Logger(service=service_name(), level=log_level.INFO.value, stream=stdout)
161154

162-
# 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
163156
utils.copy_config_to_registered_loggers(source_logger=powertools_logger)
164157

165-
# THEN
158+
# THEN old logger's handler removed and Powertools configuration used instead
166159
assert len(logger.handlers) == 1
167-
assert type(logger.handlers[0]) is logging.StreamHandler
168-
assert type(logger.handlers[0].formatter) is formatter.LambdaPowertoolsFormatter
160+
assert isinstance(logger.handlers[0], logging.StreamHandler)
161+
assert isinstance(logger.handlers[0].formatter, formatter.LambdaPowertoolsFormatter)
169162

170163

171164
def test_copy_config_to_ext_loggers_custom_log_level(stdout, logger, log_level):
172-
173-
msg = "test message"
174-
175-
# GIVEN a external logger and powertools logger initialized
165+
# GIVEN an external logger and powertools logger initialized
176166
logger = logger()
177167
powertools_logger = Logger(service=service_name(), level=log_level.CRITICAL.value, stream=stdout)
178168
level = log_level.WARNING.name
179169

180-
# WHEN configuration copied from powertools logger to ALL external loggers
181-
# 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
182172
utils.copy_config_to_registered_loggers(source_logger=powertools_logger, include={logger.name}, log_level=level)
173+
msg = "test message4"
183174
logger.warning(msg)
184175
log = capture_logging_output(stdout)
185176

186-
# THEN
177+
# THEN external logger used Powertools handler, formatter and CUSTOM log level.
187178
assert len(logger.handlers) == 1
188-
assert type(logger.handlers[0]) is logging.StreamHandler
189-
assert type(logger.handlers[0].formatter) is formatter.LambdaPowertoolsFormatter
179+
assert isinstance(logger.handlers[0], logging.StreamHandler)
180+
assert isinstance(logger.handlers[0].formatter, formatter.LambdaPowertoolsFormatter)
190181
assert powertools_logger.level == log_level.CRITICAL.value
191182
assert logger.level == log_level.WARNING.value
192183
assert log["message"] == msg

0 commit comments

Comments
 (0)