lambda-api-decorators-cdk 0.4.4__tar.gz → 0.4.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/PKG-INFO +1 -1
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/lambda_api_config.py +2 -2
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/PKG-INFO +1 -1
- lambda_api_decorators_cdk-0.4.5/src/lambda_api_decorators_cdk.egg-info/scm_version.json +8 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorizer_config.py +90 -1
- lambda_api_decorators_cdk-0.4.4/src/lambda_api_decorators_cdk.egg-info/scm_version.json +0 -8
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/.github/workflows/release.yml +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/.github/workflows/tests.yml +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/.gitignore +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/AGENTS.md +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/LICENSE +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/README.md +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/pyproject.toml +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/setup.cfg +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/__init__.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/api_type.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/ast_helper.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/lambda_api.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/resource_builder.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk/source_layout.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/SOURCES.txt +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/dependency_links.txt +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/requires.txt +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/scm_file_list.json +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/src/lambda_api_decorators_cdk.egg-info/top_level.txt +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/conftest.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_ast_decorator_invocations.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_ast_helper.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_auth_ast.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_diagnostics.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_http.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_lambda_api.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_resolution.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_rest.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_config_override_diagnostics.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_config_resource_registries.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_http_builder.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_api.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_api_config.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_function.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_layer_autodiscovery.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_packaging_current.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_permission_resolution.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_public_api.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_python_compatibility.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_resource_builder_options.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_resource_builder_state.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_resource_graph.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_resource_registries.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_rest_builder.py +0 -0
- {lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_source_layout.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lambda-api-decorators-cdk
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: AWS CDK integration for Lambda API Decorators. Generate AWS Lambda and API Gateway infrastructure from decorated Python handlers.
|
|
5
5
|
Author: Mateo Marcos, Emanuel Arguinarena, Lucas Picchi
|
|
6
6
|
License: MIT License
|
|
@@ -87,6 +87,8 @@ class LambdaApiConfig:
|
|
|
87
87
|
self.add_s3_bucket(key, bucket)
|
|
88
88
|
for key, authorizer in (authorizers or {}).items():
|
|
89
89
|
self.add_authorizer(key, authorizer)
|
|
90
|
+
for key, authorizer in (authorizer_registry or {}).items():
|
|
91
|
+
self.register_authorizer(key, authorizer)
|
|
90
92
|
self._default_authorizer = None
|
|
91
93
|
self.set_default_authorizer(default_authorizer)
|
|
92
94
|
|
|
@@ -104,8 +106,6 @@ class LambdaApiConfig:
|
|
|
104
106
|
self.register_dynamodb_table(key, value)
|
|
105
107
|
for key, value in (s3_bucket_registry or {}).items():
|
|
106
108
|
self.register_s3_bucket(key, value)
|
|
107
|
-
for key, value in (authorizer_registry or {}).items():
|
|
108
|
-
self.register_authorizer(key, value)
|
|
109
109
|
|
|
110
110
|
@staticmethod
|
|
111
111
|
def _validate_runtime_name(runtime: str) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lambda-api-decorators-cdk
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: AWS CDK integration for Lambda API Decorators. Generate AWS Lambda and API Gateway infrastructure from decorated Python handlers.
|
|
5
5
|
Author: Mateo Marcos, Emanuel Arguinarena, Lucas Picchi
|
|
6
6
|
License: MIT License
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorizer_config.py
RENAMED
|
@@ -5,7 +5,7 @@ from aws_cdk import App, Stack, aws_apigateway as apigateway
|
|
|
5
5
|
from aws_cdk import aws_apigatewayv2_authorizers as http_authorizers
|
|
6
6
|
from aws_cdk import aws_cognito as cognito
|
|
7
7
|
|
|
8
|
-
from lambda_api_decorators_cdk import LambdaApiConfig
|
|
8
|
+
from lambda_api_decorators_cdk import LambdaApi, LambdaApiConfig
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
@pytest.fixture
|
|
@@ -43,6 +43,95 @@ def test_constructor_registers_both_authorizer_families_before_default(authorize
|
|
|
43
43
|
assert builder.default_authorizer == "users"
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def test_constructor_registers_authorizer_registry_before_selecting_default(authorizers):
|
|
47
|
+
cognito_authorizer = authorizers["rest"]
|
|
48
|
+
config = LambdaApiConfig(
|
|
49
|
+
authorizer_registry={"cognito": cognito_authorizer},
|
|
50
|
+
default_authorizer="cognito",
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
builder = config._create_resource_builder()
|
|
54
|
+
assert builder.authorizers["cognito"] is cognito_authorizer
|
|
55
|
+
assert builder.default_authorizer == "cognito"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_authorizer_registry_default_resolves_to_the_original_cdkl_object(authorizers):
|
|
59
|
+
cognito_authorizer = authorizers["rest"]
|
|
60
|
+
config = LambdaApiConfig(
|
|
61
|
+
authorizer_registry={"cognito": cognito_authorizer},
|
|
62
|
+
default_authorizer="cognito",
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
builder = config._create_resource_builder()
|
|
66
|
+
assert builder.authorizers[builder.default_authorizer] is cognito_authorizer
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@pytest.mark.parametrize("registry", [{}, {"cognito": None}])
|
|
70
|
+
def test_authorizer_registry_default_rejects_an_unregistered_key(authorizers, registry):
|
|
71
|
+
with pytest.raises((KeyError, TypeError), match="cognito|authorizer"):
|
|
72
|
+
LambdaApiConfig(authorizer_registry=registry, default_authorizer="cognito")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def test_authorizer_registry_without_default_remains_public_by_default(authorizers):
|
|
76
|
+
cognito_authorizer = authorizers["rest"]
|
|
77
|
+
config = LambdaApiConfig(authorizer_registry={"cognito": cognito_authorizer})
|
|
78
|
+
|
|
79
|
+
builder = config._create_resource_builder()
|
|
80
|
+
assert builder.authorizers["cognito"] is cognito_authorizer
|
|
81
|
+
assert builder.default_authorizer is None
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def test_authorizer_registry_and_default_snapshots_are_isolated(authorizers):
|
|
85
|
+
cognito_authorizer = authorizers["rest"]
|
|
86
|
+
config = LambdaApiConfig(
|
|
87
|
+
authorizer_registry={"cognito": cognito_authorizer},
|
|
88
|
+
default_authorizer="cognito",
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
first = config._create_resource_builder()
|
|
92
|
+
second = config._create_resource_builder()
|
|
93
|
+
assert first is not second
|
|
94
|
+
assert first.authorizers is not second.authorizers
|
|
95
|
+
assert first.authorizers["cognito"] is second.authorizers["cognito"] is cognito_authorizer
|
|
96
|
+
assert first.default_authorizer == second.default_authorizer == "cognito"
|
|
97
|
+
first.authorizers.clear()
|
|
98
|
+
assert config._create_resource_builder().authorizers["cognito"] is cognito_authorizer
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def test_registering_authorizer_then_selecting_default_still_works(authorizers):
|
|
102
|
+
cognito_authorizer = authorizers["rest"]
|
|
103
|
+
config = LambdaApiConfig()
|
|
104
|
+
config.register_authorizer("cognito", cognito_authorizer)
|
|
105
|
+
config.set_default_authorizer("cognito")
|
|
106
|
+
|
|
107
|
+
builder = config._create_resource_builder()
|
|
108
|
+
assert builder.authorizers["cognito"] is cognito_authorizer
|
|
109
|
+
assert builder.default_authorizer == "cognito"
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def test_lambda_api_consumes_registry_and_default_without_constructor_keyerror(
|
|
113
|
+
authorizers, monkeypatch
|
|
114
|
+
):
|
|
115
|
+
calls = []
|
|
116
|
+
|
|
117
|
+
class NoopBuilder:
|
|
118
|
+
def build(self, *args, **kwargs):
|
|
119
|
+
calls.append((args, kwargs))
|
|
120
|
+
|
|
121
|
+
monkeypatch.setattr(
|
|
122
|
+
LambdaApiConfig,
|
|
123
|
+
"_create_resource_builder",
|
|
124
|
+
lambda self: NoopBuilder(),
|
|
125
|
+
)
|
|
126
|
+
config = LambdaApiConfig(
|
|
127
|
+
authorizer_registry={"cognito": authorizers["rest"]},
|
|
128
|
+
default_authorizer="cognito",
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
LambdaApi(Stack(App(), "LambdaApiAuthorizerConfig"), "Api", lambda_path="lambdas", config=config)
|
|
132
|
+
assert calls
|
|
133
|
+
|
|
134
|
+
|
|
46
135
|
@pytest.mark.parametrize("key,error", [(None, TypeError), (1, TypeError), ("", ValueError), (" ", ValueError)])
|
|
47
136
|
def test_authorizer_registry_rejects_invalid_keys(authorizers, key, error):
|
|
48
137
|
with pytest.raises(error):
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/.github/workflows/release.yml
RENAMED
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/.github/workflows/tests.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_ast_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_http.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_authorization_rest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_http_builder.py
RENAMED
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_api.py
RENAMED
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_api_config.py
RENAMED
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_lambda_function.py
RENAMED
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_packaging_current.py
RENAMED
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_public_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_resource_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_rest_builder.py
RENAMED
|
File without changes
|
{lambda_api_decorators_cdk-0.4.4 → lambda_api_decorators_cdk-0.4.5}/tests/test_source_layout.py
RENAMED
|
File without changes
|