Skip to content

Commit c6478c7

Browse files
committed
fix(tests): make logs fetching more robust
1 parent bea1c0e commit c6478c7

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

tests/e2e/logger/test_logger.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_basic_lambda_logs_visible(basic_handler_fn, basic_handler_fn_arn):
3030
data_fetcher.get_lambda_response(lambda_arn=basic_handler_fn_arn, payload=payload)
3131

3232
# THEN
33-
logs = data_fetcher.get_logs(function_name=basic_handler_fn, start_time=execution_time)
33+
logs = data_fetcher.get_logs(function_name=basic_handler_fn, start_time=execution_time, expected_number_of_logs=2)
3434

3535
assert len(logs) == 2
3636
assert len(logs.get_cold_start_log()) == 1

tests/e2e/utils/data_fetcher/logs.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def __len__(self) -> int:
122122
def get_logs(
123123
function_name: str,
124124
start_time: datetime,
125+
expected_number_of_logs: Optional[int],
125126
filter_expression: Optional[str] = None,
126127
log_client: Optional[CloudWatchLogsClient] = None,
127128
) -> LogFetcher:
@@ -133,6 +134,8 @@ def get_logs(
133134
Name of Lambda function to fetch logs for
134135
start_time : datetime
135136
Start date range to filter traces
137+
expected_number_of_logs : Optional[int]
138+
Retry fetching logs until this number of log lines are obtained
136139
log_client : Optional[CloudWatchLogsClient], optional
137140
Amazon CloudWatch Logs Client, by default boto3.client('logs)
138141
filter_expression : Optional[str], optional
@@ -143,6 +146,11 @@ def get_logs(
143146
LogFetcher
144147
LogFetcher instance with logs available as properties and methods
145148
"""
146-
return LogFetcher(
149+
log_fetcher = LogFetcher(
147150
function_name=function_name, start_time=start_time, filter_expression=filter_expression, log_client=log_client
148151
)
152+
153+
if expected_number_of_logs is not None and len(log_fetcher) < expected_number_of_logs:
154+
raise ValueError(f"expected {expected_number_of_logs} logs but only got ${len(log_fetcher)}")
155+
156+
return log_fetcher

0 commit comments

Comments
 (0)