Skip to content

Commit 9fccd47

Browse files
committed
Replace LambdaContext class with a typed dictionary
Remove LambdaContext class inheritance and update for TypedDict compatibility - Remove isinstance() checks for LambdaContext in tests - Update create_test_lambda_context() to return dictionary instead of class instance - Change test assertions from attribute access to dictionary access - Update type annotations to work with LambdaContext as TypedDict
1 parent 72879ac commit 9fccd47

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

src/aws_durable_execution_sdk_python_testing/invoker.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
def create_test_lambda_context() -> LambdaContext:
2929
# Create client context as a dictionary, not as objects
30-
# LambdaContext.__init__ expects dictionaries and will create the objects internally
30+
# LambdaContext is now a typed dictionary, so we return a dictionary directly
3131
client_context_dict = {
3232
"custom": {"test_key": "test_value"},
3333
"env": {"platform": "test", "make": "test", "model": "test"},
@@ -45,16 +45,16 @@ def create_test_lambda_context() -> LambdaContext:
4545
"cognitoIdentityPoolId": "us-west-2:test-pool-456",
4646
}
4747

48-
return LambdaContext(
49-
invoke_id="test-invoke-12345",
50-
client_context=client_context_dict,
51-
cognito_identity=cognito_identity_dict,
52-
epoch_deadline_time_in_ms=int(
48+
return {
49+
"invoke_id": "test-invoke-12345",
50+
"client_context": client_context_dict,
51+
"cognito_identity": cognito_identity_dict,
52+
"epoch_deadline_time_in_ms": int(
5353
(time.time() + 900) * 1000
5454
), # 15 minutes from now
55-
invoked_function_arn="arn:aws:lambda:us-west-2:123456789012:function:test-function",
56-
tenant_id="test-tenant-789",
57-
)
55+
"invoked_function_arn": "arn:aws:lambda:us-west-2:123456789012:function:test-function",
56+
"tenant_id": "test-tenant-789",
57+
}
5858

5959

6060
class Invoker(Protocol):

tests/invoker_test.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,12 @@ def test_create_test_lambda_context():
2626
"""Test creating a test lambda context."""
2727
context = create_test_lambda_context()
2828

29-
assert isinstance(context, LambdaContext)
3029
assert (
31-
context.invoked_function_arn
30+
context["invoked_function_arn"]
3231
== "arn:aws:lambda:us-west-2:123456789012:function:test-function"
3332
)
34-
assert context.tenant_id == "test-tenant-789"
35-
assert context.client_context is not None
33+
assert context["tenant_id"] == "test-tenant-789"
34+
assert context["client_context"] is not None
3635

3736

3837
def test_in_process_invoker_init():
@@ -98,7 +97,6 @@ def test_in_process_invoker_invoke():
9897
handler.assert_called_once()
9998
call_args = handler.call_args[0]
10099
assert isinstance(call_args[0], DurableExecutionInvocationInputWithClient)
101-
assert isinstance(call_args[1], LambdaContext)
102100

103101

104102
def test_lambda_invoker_init():

0 commit comments

Comments
 (0)