-
Notifications
You must be signed in to change notification settings - Fork 421
/
Copy pathtest_lambda_function_url.py
123 lines (97 loc) · 5.12 KB
/
test_lambda_function_url.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from __future__ import annotations
from aws_lambda_powertools.utilities.data_classes import LambdaFunctionUrlEvent
from aws_lambda_powertools.utilities.data_classes.api_gateway_proxy_event import RequestContextV2Authorizer
from tests.functional.utils import load_event
def test_lambda_function_url_event():
raw_event = load_event("lambdaFunctionUrlEvent.json")
parsed_event = LambdaFunctionUrlEvent(raw_event)
assert parsed_event.version == raw_event["version"]
assert parsed_event.route_key == raw_event["routeKey"]
assert parsed_event.path == raw_event["rawPath"]
assert parsed_event.raw_query_string == raw_event["rawQueryString"]
assert parsed_event.cookies == []
headers = parsed_event.headers
assert len(headers) == 20
assert parsed_event.query_string_parameters == {}
assert parsed_event.is_base64_encoded is False
assert parsed_event.body is None
assert parsed_event.path_parameters == {}
assert parsed_event.stage_variables == {}
assert parsed_event.http_method == raw_event["requestContext"]["http"]["method"]
request_context = parsed_event.request_context
request_context_raw = raw_event["requestContext"]
assert request_context.account_id == request_context_raw["accountId"]
assert request_context.api_id == request_context_raw["apiId"]
assert request_context.domain_name == request_context_raw["domainName"]
assert request_context.domain_prefix == request_context_raw["domainPrefix"]
assert request_context.request_id == request_context_raw["requestId"]
assert request_context.route_key == request_context_raw["routeKey"]
assert request_context.stage == request_context_raw["stage"]
assert request_context.time == request_context_raw["time"]
assert request_context.time_epoch == request_context_raw["timeEpoch"]
assert request_context.authentication is None
http = request_context.http
http_raw = raw_event["requestContext"]["http"]
assert http.method == http_raw["method"]
assert http.path == http_raw["path"]
assert http.protocol == http_raw["protocol"]
assert http.source_ip == http_raw["sourceIp"]
assert http.user_agent == http_raw["userAgent"]
assert isinstance(request_context.authorizer, RequestContextV2Authorizer)
def test_lambda_function_url_event_iam():
raw_event = load_event("lambdaFunctionUrlIAMEvent.json")
parsed_event = LambdaFunctionUrlEvent(raw_event)
assert parsed_event.version == raw_event["version"]
assert parsed_event.route_key == raw_event["routeKey"]
assert parsed_event.path == raw_event["rawPath"]
assert parsed_event.raw_query_string == raw_event["rawQueryString"]
headers = parsed_event.headers
assert len(headers) == 2
cookies = parsed_event.cookies
assert len(cookies) == 2
assert cookies[0] == "cookie1"
query_string_parameters = parsed_event.query_string_parameters
assert len(query_string_parameters) == 2
assert query_string_parameters.get("parameter2") == raw_event["queryStringParameters"]["parameter2"]
assert parsed_event.is_base64_encoded is False
assert parsed_event.body == raw_event["body"]
assert parsed_event.decoded_body == raw_event["body"]
assert parsed_event.path_parameters == {}
assert parsed_event.stage_variables == {}
assert parsed_event.http_method == raw_event["requestContext"]["http"]["method"]
request_context = parsed_event.request_context
request_context_raw = raw_event["requestContext"]
assert request_context.account_id == request_context_raw["accountId"]
assert request_context.api_id == request_context_raw["apiId"]
assert request_context.domain_name == request_context_raw["domainName"]
assert request_context.domain_prefix == request_context_raw["domainPrefix"]
assert request_context.request_id == request_context_raw["requestId"]
assert request_context.route_key == request_context_raw["routeKey"]
assert request_context.stage == request_context_raw["stage"]
assert request_context.time == request_context_raw["time"]
assert request_context.time_epoch == request_context_raw["timeEpoch"]
assert request_context.authentication is None
http = request_context.http
http_raw = raw_event["requestContext"]["http"]
assert http.method == http_raw["method"]
assert http.path == http_raw["path"]
assert http.protocol == http_raw["protocol"]
assert http.source_ip == http_raw["sourceIp"]
assert http.user_agent == http_raw["userAgent"]
authorizer = request_context.authorizer
assert authorizer is not None
assert authorizer.jwt_claim == {}
assert authorizer.jwt_scopes == []
assert authorizer.get_lambda == {}
iam = authorizer.iam
iam_raw = raw_event["requestContext"]["authorizer"]["iam"]
assert iam is not None
assert iam.access_key == iam_raw["accessKey"]
assert iam.account_id == iam_raw["accountId"]
assert iam.caller_id == iam_raw["callerId"]
assert iam.cognito_amr == []
assert iam.cognito_identity_id == ""
assert iam.cognito_identity_pool_id == ""
assert iam.principal_org_id == ""
assert iam.user_id == iam_raw["userId"]
assert iam.user_arn == iam_raw["userArn"]