Skip to content

Commit 692dcd6

Browse files
author
Michal Ploski
committed
Add child loggers validation test
1 parent 51ee897 commit 692dcd6

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Diff for: tests/functional/test_logger_utils.py

+30
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from enum import Enum
77

88
import pytest
9+
from pytest_mock import MockerFixture
910

1011
from aws_lambda_powertools import Logger
1112
from aws_lambda_powertools.logging import formatter, utils
@@ -195,6 +196,35 @@ def test_copy_config_to_ext_loggers_should_not_break_append_keys(stdout, log_lev
195196
powertools_logger.append_keys(key="value")
196197

197198

199+
def test_copy_config_to_ext_loggers_child_loggers_work(stdout):
200+
# GIVEN powertools logger AND child initialized AND
201+
202+
# GIVEN Loggers are initialized
203+
# create child logger before parent to mimick
204+
# importing logger from another module/file
205+
# as loggers are created in global scope
206+
service = service_name()
207+
child = Logger(stream=stdout, service=service, child=True)
208+
parent = Logger(stream=stdout, service=service)
209+
210+
# WHEN a child Logger adds an additional key AND parent logger adds additional key
211+
child.structure_logs(append=True, customer_id="value")
212+
parent.structure_logs(append=True, user_id="value")
213+
# WHEN configuration copied from powertools logger
214+
# AND powertools logger and child logger used
215+
utils.copy_config_to_registered_loggers(source_logger=parent)
216+
parent.warning("Logger message")
217+
child.warning("Child logger message")
218+
219+
# THEN payment_id key added to both powertools logger and child logger
220+
parent_log, child_log = capture_multiple_logging_statements_output(stdout)
221+
assert "customer_id" in parent_log
222+
assert "customer_id" in child_log
223+
assert "user_id" in parent_log
224+
assert "user_id" in child_log
225+
assert child.parent.name == service
226+
227+
198228
def test_copy_config_to_ext_loggers_no_duplicate_logs(stdout, logger, log_level):
199229
# GIVEN an root logger, external logger and powertools logger initialized
200230

0 commit comments

Comments
 (0)