Skip to content

Commit 528f5a8

Browse files
committed
feat: make log_client optional and fix client type
1 parent 231f6f3 commit 528f5a8

File tree

4 files changed

+41
-20
lines changed

4 files changed

+41
-20
lines changed

poetry.lock

Lines changed: 31 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ mypy-boto3-lambda = "^1.24.0"
6565
mypy-boto3-xray = "^1.24.0"
6666
mypy-boto3-s3 = { version = "^1.24.0", python = ">=3.7" }
6767
mypy-boto3-cloudformation = { version = "^1.24.0", python = ">=3.7" }
68+
mypy-boto3-logs = { version = "^1.24.0", python = ">=3.7" }
6869
types-requests = "^2.28.8"
6970
typing-extensions = { version = "^4.3.0", python = ">=3.7" }
7071
python-snappy = "^0.6.1"

tests/e2e/logger/test_logger.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import boto3
21
import pytest
32

43
from tests.e2e.utils import data_fetcher
@@ -16,7 +15,6 @@ def basic_handler_fn_arn(infrastructure: dict) -> str:
1615

1716
def test_basic_lambda_logs_visible(basic_handler_fn, basic_handler_fn_arn):
1817
# GIVEN
19-
cw_client = boto3.client("logs")
2018
required_keys = (
2119
"xray_trace_id",
2220
"function_request_id",
@@ -28,9 +26,7 @@ def test_basic_lambda_logs_visible(basic_handler_fn, basic_handler_fn_arn):
2826

2927
# WHEN
3028
_, execution_time = data_fetcher.get_lambda_response(lambda_arn=basic_handler_fn_arn)
31-
filtered_logs = data_fetcher.get_logs(
32-
lambda_function_name=basic_handler_fn, start_time=execution_time, log_client=cw_client
33-
)
29+
filtered_logs = data_fetcher.get_logs(lambda_function_name=basic_handler_fn, start_time=execution_time)
3430

3531
# THEN
3632
assert all(keys in logs.dict(exclude_unset=True) for logs in filtered_logs for keys in required_keys)

tests/e2e/utils/data_fetcher/logs.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
from functools import lru_cache
44
from typing import List, Optional, Union
55

6-
from mypy_boto3_cloudwatch import CloudWatchClient
6+
import boto3
7+
from mypy_boto3_logs import CloudWatchLogsClient
78
from pydantic import BaseModel
89
from retry import retry
910

@@ -25,10 +26,15 @@ class Log(BaseModel):
2526

2627
@lru_cache(maxsize=10, typed=False)
2728
@retry(ValueError, delay=1, jitter=1, tries=20)
28-
def get_logs(lambda_function_name: str, log_client: CloudWatchClient, start_time: datetime) -> List[Log]:
29+
def get_logs(
30+
lambda_function_name: str, start_time: datetime, log_client: Optional[CloudWatchLogsClient] = None
31+
) -> List[Log]:
32+
log_client = log_client or boto3.client("logs")
33+
2934
response = log_client.filter_log_events(
3035
logGroupName=f"/aws/lambda/{lambda_function_name}", startTime=int(start_time.timestamp())
3136
)
37+
3238
if not response["events"]:
3339
raise ValueError("Empty response from Cloudwatch Logs. Repeating...")
3440

0 commit comments

Comments
 (0)