Skip to content

Commit 4f450d0

Browse files
Adding Data Source test
2 parents a11c0a3 + b818ae7 commit 4f450d0

36 files changed

+246
-123
lines changed

CHANGELOG.md

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,49 @@
1212

1313
* **i-made-this:** add new article about best practices for accelerating serverless development ([#4518](https://github.com/aws-powertools/powertools-lambda-python/issues/4518))
1414

15+
## Features
16+
17+
* **validation:** support JSON Schema referencing in validation utils ([#4508](https://github.com/aws-powertools/powertools-lambda-python/issues/4508))
18+
1519
## Maintenance
1620

21+
* **ci:** introduce tests with Nox ([#4537](https://github.com/aws-powertools/powertools-lambda-python/issues/4537))
22+
* **ci:** add the Data Masking feature to nox tests ([#4574](https://github.com/aws-powertools/powertools-lambda-python/issues/4574))
23+
* **ci:** add the Typing feature to nox tests ([#4572](https://github.com/aws-powertools/powertools-lambda-python/issues/4572))
24+
* **ci:** add the Validation feature to nox tests ([#4571](https://github.com/aws-powertools/powertools-lambda-python/issues/4571))
25+
* **ci:** add the Feature Flags feature to nox tests ([#4570](https://github.com/aws-powertools/powertools-lambda-python/issues/4570))
26+
* **ci:** add the Parameters feature to nox tests ([#4569](https://github.com/aws-powertools/powertools-lambda-python/issues/4569))
27+
* **ci:** add the Middleware Factory feature to nox tests ([#4568](https://github.com/aws-powertools/powertools-lambda-python/issues/4568))
28+
* **ci:** add the Metrics feature to nox tests ([#4552](https://github.com/aws-powertools/powertools-lambda-python/issues/4552))
29+
* **ci:** add the Tracer feature to nox tests ([#4567](https://github.com/aws-powertools/powertools-lambda-python/issues/4567))
30+
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#4565](https://github.com/aws-powertools/powertools-lambda-python/issues/4565))
1731
* **deps:** bump codecov/codecov-action from 4.4.1 to 4.5.0 ([#4514](https://github.com/aws-powertools/powertools-lambda-python/issues/4514))
18-
* **deps:** bump redis from 5.0.5 to 5.0.6 ([#4527](https://github.com/aws-powertools/powertools-lambda-python/issues/4527))
19-
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#4546](https://github.com/aws-powertools/powertools-lambda-python/issues/4546))
20-
* **deps:** bump fastjsonschema from 2.19.1 to 2.20.0 ([#4543](https://github.com/aws-powertools/powertools-lambda-python/issues/4543))
2132
* **deps:** bump squidfunk/mkdocs-material from `96abcbb` to `257eca8` in /docs ([#4540](https://github.com/aws-powertools/powertools-lambda-python/issues/4540))
22-
* **deps:** bump zgosalvez/github-actions-ensure-sha-pinned-actions from 3.0.7 to 3.0.9 ([#4539](https://github.com/aws-powertools/powertools-lambda-python/issues/4539))
33+
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#4546](https://github.com/aws-powertools/powertools-lambda-python/issues/4546))
2334
* **deps:** bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 ([#4538](https://github.com/aws-powertools/powertools-lambda-python/issues/4538))
35+
* **deps:** bump zgosalvez/github-actions-ensure-sha-pinned-actions from 3.0.7 to 3.0.9 ([#4539](https://github.com/aws-powertools/powertools-lambda-python/issues/4539))
36+
* **deps:** bump fastjsonschema from 2.19.1 to 2.20.0 ([#4543](https://github.com/aws-powertools/powertools-lambda-python/issues/4543))
37+
* **deps:** bump redis from 5.0.5 to 5.0.6 ([#4527](https://github.com/aws-powertools/powertools-lambda-python/issues/4527))
38+
* **deps-dev:** bump urllib3 from 1.26.18 to 1.26.19 in /layer ([#4547](https://github.com/aws-powertools/powertools-lambda-python/issues/4547))
39+
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.145.0a0 to 2.146.0a0 ([#4542](https://github.com/aws-powertools/powertools-lambda-python/issues/4542))
40+
* **deps-dev:** bump mypy-boto3-secretsmanager from 1.34.125 to 1.34.128 in the boto-typing group ([#4541](https://github.com/aws-powertools/powertools-lambda-python/issues/4541))
41+
* **deps-dev:** bump mkdocs-material from 9.5.26 to 9.5.27 ([#4544](https://github.com/aws-powertools/powertools-lambda-python/issues/4544))
42+
* **deps-dev:** bump cfn-lint from 0.87.7 to 1.3.0 ([#4577](https://github.com/aws-powertools/powertools-lambda-python/issues/4577))
43+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.188 to 0.1.189 ([#4564](https://github.com/aws-powertools/powertools-lambda-python/issues/4564))
44+
* **deps-dev:** bump hvac from 2.2.0 to 2.3.0 ([#4563](https://github.com/aws-powertools/powertools-lambda-python/issues/4563))
45+
* **deps-dev:** bump filelock from 3.15.1 to 3.15.3 ([#4576](https://github.com/aws-powertools/powertools-lambda-python/issues/4576))
2446
* **deps-dev:** bump ruff from 0.4.8 to 0.4.9 ([#4528](https://github.com/aws-powertools/powertools-lambda-python/issues/4528))
2547
* **deps-dev:** bump aws-cdk-lib from 2.145.0 to 2.146.0 ([#4526](https://github.com/aws-powertools/powertools-lambda-python/issues/4526))
26-
* **deps-dev:** bump mypy-boto3-secretsmanager from 1.34.125 to 1.34.128 in the boto-typing group ([#4541](https://github.com/aws-powertools/powertools-lambda-python/issues/4541))
48+
* **deps-dev:** bump filelock from 3.14.0 to 3.15.1 ([#4512](https://github.com/aws-powertools/powertools-lambda-python/issues/4512))
2749
* **deps-dev:** bump aws-cdk from 2.145.0 to 2.146.0 ([#4525](https://github.com/aws-powertools/powertools-lambda-python/issues/4525))
2850
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.182 to 0.1.184 ([#4529](https://github.com/aws-powertools/powertools-lambda-python/issues/4529))
2951
* **deps-dev:** bump bandit from 1.7.8 to 1.7.9 ([#4511](https://github.com/aws-powertools/powertools-lambda-python/issues/4511))
3052
* **deps-dev:** bump cfn-lint from 0.87.6 to 0.87.7 ([#4513](https://github.com/aws-powertools/powertools-lambda-python/issues/4513))
31-
* **deps-dev:** bump filelock from 3.14.0 to 3.15.1 ([#4512](https://github.com/aws-powertools/powertools-lambda-python/issues/4512))
53+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.189 to 0.1.192 ([#4578](https://github.com/aws-powertools/powertools-lambda-python/issues/4578))
3254
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.179 to 0.1.182 ([#4510](https://github.com/aws-powertools/powertools-lambda-python/issues/4510))
33-
* **deps-dev:** bump urllib3 from 1.26.18 to 1.26.19 in /layer ([#4547](https://github.com/aws-powertools/powertools-lambda-python/issues/4547))
55+
* **deps-dev:** bump sentry-sdk from 2.5.1 to 2.6.0 ([#4579](https://github.com/aws-powertools/powertools-lambda-python/issues/4579))
3456
* **deps-dev:** bump mypy-boto3-secretsmanager from 1.34.109 to 1.34.125 in the boto-typing group ([#4509](https://github.com/aws-powertools/powertools-lambda-python/issues/4509))
35-
* **deps-dev:** bump aws-cdk-aws-lambda-python-alpha from 2.145.0a0 to 2.146.0a0 ([#4542](https://github.com/aws-powertools/powertools-lambda-python/issues/4542))
57+
* **deps-dev:** bump cdklabs-generative-ai-cdk-constructs from 0.1.184 to 0.1.188 ([#4550](https://github.com/aws-powertools/powertools-lambda-python/issues/4550))
3658
* **governance:** fix errors when creating Gitpod environment ([#4532](https://github.com/aws-powertools/powertools-lambda-python/issues/4532))
3759

3860

layer/scripts/layer-balancer/go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@ module layerbalancer
33
go 1.18
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v1.29.0
7-
github.com/aws/aws-sdk-go-v2/config v1.27.20
8-
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.0
6+
github.com/aws/aws-sdk-go-v2 v1.30.0
7+
github.com/aws/aws-sdk-go-v2/config v1.27.21
8+
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.1
99
golang.org/x/exp v0.0.0-20230321023759-10a507213a29
1010
golang.org/x/sync v0.7.0
1111
)
1212

1313
require (
1414
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
15-
github.com/aws/aws-sdk-go-v2/credentials v1.17.20 // indirect
16-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.7 // indirect
17-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.11 // indirect
18-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.11 // indirect
15+
github.com/aws/aws-sdk-go-v2/credentials v1.17.21 // indirect
16+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 // indirect
17+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 // indirect
18+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 // indirect
1919
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
2020
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
21-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.13 // indirect
22-
github.com/aws/aws-sdk-go-v2/service/sso v1.21.0 // indirect
23-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.0 // indirect
24-
github.com/aws/aws-sdk-go-v2/service/sts v1.29.0 // indirect
21+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 // indirect
22+
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 // indirect
23+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 // indirect
24+
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 // indirect
2525
github.com/aws/smithy-go v1.20.2 // indirect
2626
github.com/jmespath/go-jmespath v0.4.0 // indirect
2727
)

layer/scripts/layer-balancer/go.sum

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
github.com/aws/aws-sdk-go-v2 v1.29.0 h1:uMlEecEwgp2gs6CsM6ugquNHr6mg0LHylPBR8u5Ojac=
2-
github.com/aws/aws-sdk-go-v2 v1.29.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
1+
github.com/aws/aws-sdk-go-v2 v1.30.0 h1:6qAwtzlfcTtcL8NHtbDQAqgM5s6NDipQTkPxyH/6kAA=
2+
github.com/aws/aws-sdk-go-v2 v1.30.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
33
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
44
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
5-
github.com/aws/aws-sdk-go-v2/config v1.27.20 h1:oQSn/KNUMV54X0FBEDQQ2ymNfcKyMT81ar8gyvMzzqs=
6-
github.com/aws/aws-sdk-go-v2/config v1.27.20/go.mod h1:IbEMotJrWc3Bh7++HXZDlviHZP7kHrkHU3PNl9e17po=
7-
github.com/aws/aws-sdk-go-v2/credentials v1.17.20 h1:VYTCplAeOeBv5InTtrmF61OIwD4aHKryg3KZ6hf7dsI=
8-
github.com/aws/aws-sdk-go-v2/credentials v1.17.20/go.mod h1:ktubcFYvbN8++72jVM9IJoQH6Q2TP+Z7r2VbV1AaESU=
9-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.7 h1:54QUEXjkE1SlxHmRA3gBXA52j/ZSAgdOfAFGv1NsPCY=
10-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.7/go.mod h1:bQRjJsdSMzmo/qbtGeBtPbIMp1IgQ+9R9jYJLm12uJA=
11-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.11 h1:ltkhl3I9ddcRR3Dsy+7bOFFq546O8OYsfNEXVIyuOSE=
12-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.11/go.mod h1:H4D8JoCFNJwnT7U5U8iwgG24n71Fx2I/ZP/18eYFr9g=
13-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.11 h1:+BgX2AY7yV4ggSwa80z/yZIJX+e0jnNxjMLVyfpSXM0=
14-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.11/go.mod h1:DlBATBSDCz30BCdRFldmyLsAzJwi2pdQ+YSdJTHhTUI=
5+
github.com/aws/aws-sdk-go-v2/config v1.27.21 h1:yPX3pjGCe2hJsetlmGNB4Mngu7UPmvWPzzWCv1+boeM=
6+
github.com/aws/aws-sdk-go-v2/config v1.27.21/go.mod h1:4XtlEU6DzNai8RMbjSF5MgGZtYvrhBP/aKZcRtZAVdM=
7+
github.com/aws/aws-sdk-go-v2/credentials v1.17.21 h1:pjAqgzfgFhTv5grc7xPHtXCAaMapzmwA7aU+c/SZQGw=
8+
github.com/aws/aws-sdk-go-v2/credentials v1.17.21/go.mod h1:nhK6PtBlfHTUDVmBLr1dg+WHCOCK+1Fu/WQyVHPsgNQ=
9+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 h1:FR+oWPFb/8qMVYMWN98bUZAGqPvLHiyqg1wqQGfUAXY=
10+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8/go.mod h1:EgSKcHiuuakEIxJcKGzVNWh5srVAQ3jKaSrBGRYvM48=
11+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 h1:SJ04WXGTwnHlWIODtC5kJzKbeuHt+OUNOgKg7nfnUGw=
12+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12/go.mod h1:FkpvXhA92gb3GE9LD6Og0pHHycTxW7xGpnEh5E7Opwo=
13+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 h1:hb5KgeYfObi5MHkSSZMEudnIvX30iB+E21evI4r6BnQ=
14+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12/go.mod h1:CroKe/eWJdyfy9Vx4rljP5wTUjNJfb+fPz1uMYUhEGM=
1515
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
1616
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
1717
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
1818
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
19-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.13 h1:3A8vxp65nZy6aMlSCBvpIyxIbAN0DOSxaPDZuzasxuU=
20-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.13/go.mod h1:IxJ/pMQ/Y+MDFGo6pQRyqzKKwtGMHb5IWp5PXSQr8dM=
21-
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.0 h1:vrwMgAOU8ZXrWs0QZOOAFRdWFNxoL2DdH4doD0BkmU4=
22-
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.0/go.mod h1:ZVT/r5NG5Fxjaw7rgDmOYVu0y2KELlQCcda/f+yypUQ=
23-
github.com/aws/aws-sdk-go-v2/service/sso v1.21.0 h1:P0zUA+5liaoNILI/btBBQHC09PFPyRJr+w+Xt9KHKck=
24-
github.com/aws/aws-sdk-go-v2/service/sso v1.21.0/go.mod h1:0bmRzdsq9/iNyP02H4UV0ZRjFx6qQBqRvfCJ4trFgjE=
25-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.0 h1:jPV8U9r3msO9ECm9geW8PGjU/rz8vfPTPmIBbA83W3M=
26-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.0/go.mod h1:B3G77bQDCmhp0RV0P/J9Kd4/qsymdWVhzTe3btAtywE=
27-
github.com/aws/aws-sdk-go-v2/service/sts v1.29.0 h1:dqW4XRwPE/poWSqVntpeXLHzpPK6AOfKmL9QWDYl9aw=
28-
github.com/aws/aws-sdk-go-v2/service/sts v1.29.0/go.mod h1:j8+hrxlmLR8ZQo6ytTAls/JFrt5bVisuS6PD8gw2VBw=
19+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 h1:zSDPny/pVnkqABXYRicYuPf9z2bTqfH13HT3v6UheIk=
20+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14/go.mod h1:3TTcI5JSzda1nw/pkVC9dhgLre0SNBFj2lYS4GctXKI=
21+
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.1 h1:Drh1jXr7mTcSXyjEgCIMijskUz/5FXgdjJcqXGQnjhs=
22+
github.com/aws/aws-sdk-go-v2/service/lambda v1.55.1/go.mod h1:5drdANY67aOvUNJLjBEg2HXeCXkk0MDurqsJs73TXVQ=
23+
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 h1:sd0BsnAvLH8gsp2e3cbaIr+9D7T1xugueQ7V/zUAsS4=
24+
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1/go.mod h1:lcQG/MmxydijbeTOp04hIuJwXGWPZGI3bwdFDGRTv14=
25+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 h1:1uEFNNskK/I1KoZ9Q8wJxMz5V9jyBlsiaNrM7vA3YUQ=
26+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1/go.mod h1:z0P8K+cBIsFXUr5rzo/psUeJ20XjPN0+Nn8067Nd+E4=
27+
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 h1:myX5CxqXE0QMZNja6FA1/FSE3Vu1rVmeUmpJMMzeZg0=
28+
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1/go.mod h1:N2mQiucsO0VwK9CYuS4/c2n6Smeh1v47Rz3dWCPFLdE=
2929
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
3030
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
3131
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=

noxfile.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def test_with_only_required_packages(session: nox.Session):
5555
# Middleware factory without tracer
5656
# Typing
5757
# Data Class - without codepipeline dataclass
58+
# Event Handler without OpenAPI
5859
build_and_run_test(
5960
session,
6061
folders=[
@@ -63,6 +64,7 @@ def test_with_only_required_packages(session: nox.Session):
6364
f"{PREFIX_TESTS_FUNCTIONAL}/middleware_factory/required_dependencies/",
6465
f"{PREFIX_TESTS_FUNCTIONAL}/typing/required_dependencies/",
6566
f"{PREFIX_TESTS_UNIT}/data_classes/required_dependencies/",
67+
f"{PREFIX_TESTS_FUNCTIONAL}/event_handler/required_dependencies/",
6668
],
6769
)
6870

@@ -107,6 +109,7 @@ def test_with_boto3_sdk_as_required_package(session: nox.Session):
107109
f"{PREFIX_TESTS_FUNCTIONAL}/parameters/_boto3/",
108110
f"{PREFIX_TESTS_FUNCTIONAL}/feature_flags/_boto3/",
109111
f"{PREFIX_TESTS_UNIT}/data_classes/_boto3/",
112+
f"{PREFIX_TESTS_FUNCTIONAL}/streaming/_boto3/",
110113
],
111114
extras="aws-sdk",
112115
)
@@ -137,3 +140,19 @@ def test_with_aws_encryption_sdk_as_required_package(session: nox.Session):
137140
],
138141
extras="datamasking",
139142
)
143+
144+
145+
@nox.session()
146+
@nox.parametrize("pydantic", ["1.10", "2.0"])
147+
def test_with_pydantic_required_package(session: nox.Session, pydantic: str):
148+
"""Tests that only depends for required libraries"""
149+
# Event Handler OpenAPI
150+
151+
session.install(f"pydantic>={pydantic}")
152+
153+
build_and_run_test(
154+
session,
155+
folders=[
156+
f"{PREFIX_TESTS_FUNCTIONAL}/event_handler/_pydantic/",
157+
],
158+
)

tests/functional/event_handler/_pydantic/__init__.py

Whitespace-only changes.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
from pydantic import BaseModel
2+
3+
from aws_lambda_powertools.event_handler import content_types
4+
from aws_lambda_powertools.event_handler.api_gateway import (
5+
ApiGatewayResolver,
6+
Response,
7+
)
8+
from aws_lambda_powertools.event_handler.openapi.exceptions import RequestValidationError
9+
from tests.functional.utils import load_event
10+
11+
LOAD_GW_EVENT = load_event("apiGatewayProxyEvent.json")
12+
13+
14+
def test_exception_handler_with_data_validation():
15+
# GIVEN a resolver with an exception handler defined for RequestValidationError
16+
app = ApiGatewayResolver(enable_validation=True)
17+
18+
@app.exception_handler(RequestValidationError)
19+
def handle_validation_error(ex: RequestValidationError):
20+
return Response(
21+
status_code=422,
22+
content_type=content_types.TEXT_PLAIN,
23+
body=f"Invalid data. Number of errors: {len(ex.errors())}",
24+
)
25+
26+
@app.get("/my/path")
27+
def get_lambda(param: int): ...
28+
29+
# WHEN calling the event handler
30+
# AND a RequestValidationError is raised
31+
result = app(LOAD_GW_EVENT, {})
32+
33+
# THEN call the exception_handler
34+
assert result["statusCode"] == 422
35+
assert result["multiValueHeaders"]["Content-Type"] == [content_types.TEXT_PLAIN]
36+
assert result["body"] == "Invalid data. Number of errors: 1"
37+
38+
39+
def test_exception_handler_with_data_validation_pydantic_response():
40+
# GIVEN a resolver with an exception handler defined for RequestValidationError
41+
app = ApiGatewayResolver(enable_validation=True)
42+
43+
class Err(BaseModel):
44+
msg: str
45+
46+
@app.exception_handler(RequestValidationError)
47+
def handle_validation_error(ex: RequestValidationError):
48+
return Response(
49+
status_code=422,
50+
content_type=content_types.APPLICATION_JSON,
51+
body=Err(msg=f"Invalid data. Number of errors: {len(ex.errors())}"),
52+
)
53+
54+
@app.get("/my/path")
55+
def get_lambda(param: int): ...
56+
57+
# WHEN calling the event handler
58+
# AND a RequestValidationError is raised
59+
result = app(LOAD_GW_EVENT, {})
60+
61+
# THEN exception handler's pydantic response should be serialized correctly
62+
assert result["statusCode"] == 422
63+
assert result["body"] == '{"msg":"Invalid data. Number of errors: 1"}'
64+
65+
66+
def test_data_validation_error():
67+
# GIVEN a resolver without an exception handler
68+
app = ApiGatewayResolver(enable_validation=True)
69+
70+
@app.get("/my/path")
71+
def get_lambda(param: int): ...
72+
73+
# WHEN calling the event handler
74+
# AND a RequestValidationError is raised
75+
result = app(LOAD_GW_EVENT, {})
76+
77+
# THEN call the exception_handler
78+
assert result["statusCode"] == 422
79+
assert result["multiValueHeaders"]["Content-Type"] == [content_types.APPLICATION_JSON]
80+
assert "missing" in result["body"]

tests/functional/event_handler/required_dependencies/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)