Skip to content

Commit acb4ee7

Browse files
refactor(tests): use standard collections for types + refactor code (#6497)
1 parent cc5e72a commit acb4ee7

File tree

11 files changed

+42
-23
lines changed

11 files changed

+42
-23
lines changed

ruff.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,5 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel"]
9898
# Maintenance: we're keeping EphemeralMetrics code in case of Hyrum's law so we can quickly revert it
9999
"aws_lambda_powertools/metrics/metrics.py" = ["ERA001"]
100100
"examples/*" = ["FA100", "TCH"]
101-
"tests/*" = ["FA100", "TCH"]
101+
"tests/*" = ["FA100"]
102102
"aws_lambda_powertools/utilities/parser/models/*" = ["FA100"]

tests/e2e/utils/data_fetcher/traces.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import json
22
from datetime import datetime, timedelta
3-
from typing import Any, Dict, Generator, List, Optional
3+
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional
44

55
import boto3
66
from botocore.paginate import PageIterator
77
from mypy_boto3_xray.client import XRayClient
8-
from mypy_boto3_xray.type_defs import TraceSummaryTypeDef
98
from pydantic import BaseModel
109
from retry import retry
1110

11+
if TYPE_CHECKING:
12+
from mypy_boto3_xray.type_defs import TraceSummaryTypeDef
13+
1214

1315
class TraceSubsegment(BaseModel):
14-
id: str # noqa: A003 VNE003 # id is a field we can't change
16+
id: str # noqa: A003 # id is a field we can't change
1517
name: str
1618
start_time: float
1719
end_time: float
@@ -22,7 +24,7 @@ class TraceSubsegment(BaseModel):
2224

2325

2426
class TraceDocument(BaseModel):
25-
id: str # noqa: A003 VNE003 # id is a field we can't change
27+
id: str # noqa: A003 # id is a field we can't change
2628
name: str
2729
start_time: float
2830
end_time: float

tests/functional/batch/required_dependencies/test_utilities_batch.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818
process_partial_response,
1919
)
2020
from aws_lambda_powertools.utilities.batch.exceptions import BatchProcessingError, UnexpectedBatchTypeError
21-
from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import (
22-
DynamoDBRecord,
23-
)
2421
from aws_lambda_powertools.utilities.data_classes.kinesis_stream_event import (
2522
KinesisStreamRecord,
2623
)
@@ -31,6 +28,10 @@
3128
if TYPE_CHECKING:
3229
from collections.abc import Awaitable, Callable
3330

31+
from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import (
32+
DynamoDBRecord,
33+
)
34+
3435

3536
@pytest.fixture(scope="module")
3637
def sqs_event_fifo_factory() -> Callable:

tests/functional/event_handler/_pydantic/test_openapi_with_pep563.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from pydantic import BaseModel, Field
4-
from typing_extensions import Annotated
4+
from typing_extensions import Annotated # noqa: TC002
55

66
from aws_lambda_powertools.event_handler.api_gateway import APIGatewayRestResolver
77
from aws_lambda_powertools.event_handler.openapi.models import (

tests/functional/feature_flags/_boto3/test_time_based_actions.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
import datetime
4-
from typing import Any
4+
from typing import TYPE_CHECKING, Any
55

66
from botocore.config import Config
77
from dateutil.tz import gettz
@@ -20,7 +20,9 @@
2020
TimeKeys,
2121
TimeValues,
2222
)
23-
from aws_lambda_powertools.utilities.feature_flags.types import JSONType
23+
24+
if TYPE_CHECKING:
25+
from aws_lambda_powertools.utilities.feature_flags.types import JSONType
2426

2527

2628
def evaluate_mocked_schema(

tests/functional/logger/required_dependencies/test_logger.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
import string
1212
import sys
1313
from collections import namedtuple
14-
from collections.abc import Callable, Iterable
1514
from datetime import datetime, timezone
16-
from typing import Any
15+
from typing import TYPE_CHECKING, Any
1716

1817
import pytest
1918

@@ -27,6 +26,9 @@
2726
from aws_lambda_powertools.shared import constants
2827
from aws_lambda_powertools.utilities.data_classes import S3Event, event_source
2928

29+
if TYPE_CHECKING:
30+
from collections.abc import Callable, Iterable
31+
3032

3133
@pytest.fixture
3234
def stdout():

tests/functional/metrics/required_dependencies/test_metrics_cloudwatch_emf.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import json
55
import warnings
66
from collections import namedtuple
7-
from typing import Any
7+
from typing import TYPE_CHECKING, Any
88

99
import pytest
1010

@@ -25,9 +25,11 @@
2525
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.constants import (
2626
MAX_DIMENSIONS,
2727
)
28-
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.types import (
29-
CloudWatchEMFOutput,
30-
)
28+
29+
if TYPE_CHECKING:
30+
from aws_lambda_powertools.metrics.provider.cloudwatch_emf.types import (
31+
CloudWatchEMFOutput,
32+
)
3133

3234

3335
def serialize_metrics(

tests/functional/metrics/required_dependencies/test_metrics_provider.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
from __future__ import annotations
22

33
import json
4-
from typing import Any
4+
from typing import TYPE_CHECKING, Any
55

66
from aws_lambda_powertools.metrics import (
77
SchemaValidationError,
88
)
99
from aws_lambda_powertools.metrics.metrics import Metrics
1010
from aws_lambda_powertools.metrics.provider import BaseProvider
11-
from aws_lambda_powertools.utilities.typing import LambdaContext
11+
12+
if TYPE_CHECKING:
13+
from aws_lambda_powertools.utilities.typing import LambdaContext
1214

1315

1416
def capture_metrics_output(capsys):

tests/unit/data_classes/_boto3/test_code_pipeline_job_event.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33
import json
44
import zipfile
55
from io import StringIO
6+
from typing import TYPE_CHECKING
67

78
import pytest
89
from botocore.response import StreamingBody
9-
from pytest_mock import MockerFixture
1010

1111
from aws_lambda_powertools.utilities.data_classes import CodePipelineJobEvent
1212
from aws_lambda_powertools.utilities.data_classes.code_pipeline_job_event import (
1313
CodePipelineData,
1414
)
1515
from tests.functional.utils import load_event
1616

17+
if TYPE_CHECKING:
18+
from pytest_mock import MockerFixture
19+
1720

1821
def test_code_pipeline_event():
1922
raw_event = load_event("codePipelineEvent.json")

tests/unit/data_classes/required_dependencies/test_sqs_event.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
from __future__ import annotations
22

33
import json
4+
from typing import TYPE_CHECKING
45

56
from aws_lambda_powertools.utilities.data_classes import S3Event, SQSEvent
6-
from aws_lambda_powertools.utilities.data_classes.sns_event import SNSMessage
77
from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSMessageAttributes
88
from tests.functional.utils import load_event
99

10+
if TYPE_CHECKING:
11+
from aws_lambda_powertools.utilities.data_classes.sns_event import SNSMessage
12+
1013

1114
def test_seq_trigger_event():
1215
raw_event = load_event("sqsEvent.json")

tests/unit/test_tracing.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
from __future__ import annotations
22

33
import contextlib
4-
from typing import NamedTuple
4+
from typing import TYPE_CHECKING, NamedTuple
55
from unittest import mock
6-
from unittest.mock import MagicMock
76

87
import pytest
98

109
from aws_lambda_powertools import Tracer
1110

11+
if TYPE_CHECKING:
12+
from unittest.mock import MagicMock
13+
1214
# Maintenance: This should move to Functional tests and use Fake over mocks.
1315

1416
MODULE_PREFIX = "tests.unit.test_tracing"

0 commit comments

Comments
 (0)