Skip to content

Commit d16f089

Browse files
committed
fix tests
1 parent 7c2f9ea commit d16f089

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

aws_lambda_powertools/utilities/parser/parser.py

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import typing
33
from typing import Any, Callable, Dict, Optional, Type, overload
44

5-
from pydantic import TypeAdapter
5+
from pydantic import TypeAdapter, ValidationError
66

77
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
88
from aws_lambda_powertools.utilities.parser.envelopes.base import Envelope
@@ -95,13 +95,16 @@ def handler(event: Order, context: LambdaContext):
9595
"or as the type hint of `event` in the handler that it wraps",
9696
)
9797

98-
if envelope:
99-
parsed_event = parse(event=event, model=model, envelope=envelope)
100-
else:
101-
parsed_event = parse(event=event, model=model)
98+
try:
99+
if envelope:
100+
parsed_event = parse(event=event, model=model, envelope=envelope)
101+
else:
102+
parsed_event = parse(event=event, model=model)
102103

103-
logger.debug(f"Calling handler {handler.__name__}")
104-
return handler(parsed_event, context, **kwargs)
104+
logger.debug(f"Calling handler {handler.__name__}")
105+
return handler(parsed_event, context, **kwargs)
106+
except (ValidationError, AttributeError) as exc:
107+
raise InvalidModelTypeError(f"Error: {str(exc)}. Please ensure the type you're trying to parse into is correct")
105108

106109

107110
@overload
@@ -186,7 +189,7 @@ def handler(event: Order, context: LambdaContext):
186189

187190
return adapter.validate_python(event)
188191

189-
except AttributeError as exc:
192+
except Exception as exc:
190193
raise InvalidModelTypeError(
191194
f"Error: {str(exc)}. Please ensure the Input model inherits from BaseModel,\n"
192195
"and your payload adheres to the specified Input model structure.\n"

tests/functional/parser/test_parser.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import pytest
66

77
from aws_lambda_powertools.utilities.parser import (
8-
ValidationError,
98
event_parser,
109
exceptions,
1110
)
@@ -18,7 +17,7 @@ def test_parser_unsupported_event(dummy_schema, invalid_value):
1817
def handle_no_envelope(event: Dict, _: LambdaContext):
1918
return event
2019

21-
with pytest.raises(ValidationError):
20+
with pytest.raises(exceptions.InvalidModelTypeError):
2221
handle_no_envelope(event=invalid_value, context=LambdaContext())
2322

2423

0 commit comments

Comments
 (0)