Techdebt: Streamline AWSLambda/Docker tests (#6735)

This commit is contained in:
Bert Blommers 2023-08-31 06:47:49 +00:00 committed by GitHub
parent 58ee2cd61c
commit 8aafbdb58f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 275 additions and 307 deletions

View File

@ -34,6 +34,13 @@ jobs:
pip install -r requirements-dev.txt pip install -r requirements-dev.txt
pip install pytest-cov pip install pytest-cov
pip install pytest-github-actions-annotate-failures pip install pytest-github-actions-annotate-failures
- name: Download Docker dependencies
# This happens automatically during test execution
# However, our tests can run concurrently
# Which means that our tests can pull this image concurrently
# Pulling it once is more efficient
run: |
docker pull mlupin/docker-lambda:python3.11
- name: Test with pytest - name: Test with pytest
run: | run: |
make test-only make test-only

View File

@ -38,6 +38,13 @@ jobs:
- name: Install project dependencies - name: Install project dependencies
run: | run: |
pip install -r requirements-dev.txt pip install -r requirements-dev.txt
- name: Download Docker dependencies
# This happens automatically during test execution
# However, our tests can run concurrently
# Which means that our tests can pull this image concurrently
# Pulling it once is more efficient
run: |
docker pull mlupin/docker-lambda:python3.11
- name: Test ServerMode/Coverage - name: Test ServerMode/Coverage
env: env:
TEST_SERVER_MODE: ${{ true }} TEST_SERVER_MODE: ${{ true }}

View File

@ -39,7 +39,7 @@ test-only:
pytest -sv -rs --cov=moto --cov-report xml ./tests/ $(TEST_EXCLUDE) pytest -sv -rs --cov=moto --cov-report xml ./tests/ $(TEST_EXCLUDE)
# https://github.com/aws/aws-xray-sdk-python/issues/196 - Run these tests separately without Coverage enabled # https://github.com/aws/aws-xray-sdk-python/issues/196 - Run these tests separately without Coverage enabled
pytest -sv -rs ./tests/test_xray pytest -sv -rs ./tests/test_xray
MOTO_CALL_RESET_API=false pytest -rs --cov=moto --cov-report xml --cov-append -n 4 $(PARALLEL_TESTS) MOTO_CALL_RESET_API=false pytest -sv --cov=moto --cov-report xml --cov-append -n 4 $(PARALLEL_TESTS) --dist loadscope
test: lint test-only test: lint test-only

View File

@ -1450,7 +1450,7 @@ class LambdaStorage(object):
def all(self) -> Iterable[LambdaFunction]: def all(self) -> Iterable[LambdaFunction]:
result = [] result = []
for function_group in self._functions.values(): for function_group in list(self._functions.values()):
latest = copy.deepcopy(function_group["latest"]) latest = copy.deepcopy(function_group["latest"])
latest.function_arn = f"{latest.function_arn}:$LATEST" latest.function_arn = f"{latest.function_arn}:$LATEST"
result.append(latest) result.append(latest)

View File

@ -108,7 +108,7 @@ template = """{
"Arn" "Arn"
] ]
}, },
"Runtime": "python2.7", "Runtime": "python3.11",
"Timeout": 6 "Timeout": 6
}, },
"DependsOn": [ "DependsOn": [

View File

@ -21,6 +21,7 @@ from .utilities import (
_process_lambda, _process_lambda,
) )
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -44,7 +45,7 @@ def test_list_functions():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -85,7 +86,7 @@ def test_create_based_on_s3_with_missing_bucket():
with pytest.raises(ClientError) as exc: with pytest.raises(ClientError) as exc:
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": "this-bucket-does-not-exist", "S3Key": "test.zip"}, Code={"S3Bucket": "this-bucket-does-not-exist", "S3Key": "test.zip"},
@ -123,7 +124,7 @@ def test_create_function_from_aws_bucket():
result = conn.create_function( result = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -140,7 +141,7 @@ def test_create_function_from_aws_bucket():
result["FunctionArn"] result["FunctionArn"]
== f"arn:aws:lambda:{_lambda_region}:{ACCOUNT_ID}:function:{function_name}" == f"arn:aws:lambda:{_lambda_region}:{ACCOUNT_ID}:function:{function_name}"
) )
assert result["Runtime"] == "python2.7" assert result["Runtime"] == PYTHON_VERSION
assert result["Handler"] == "lambda_function.lambda_handler" assert result["Handler"] == "lambda_function.lambda_handler"
assert result["CodeSha256"] == base64.b64encode( assert result["CodeSha256"] == base64.b64encode(
hashlib.sha256(zip_content).digest() hashlib.sha256(zip_content).digest()
@ -156,7 +157,7 @@ def test_create_function_from_zipfile():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
result = conn.create_function( result = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -176,7 +177,7 @@ def test_create_function_from_zipfile():
"EphemeralStorage": {"Size": 512}, "EphemeralStorage": {"Size": 512},
"FunctionName": function_name, "FunctionName": function_name,
"FunctionArn": f"arn:aws:lambda:{_lambda_region}:{ACCOUNT_ID}:function:{function_name}", "FunctionArn": f"arn:aws:lambda:{_lambda_region}:{ACCOUNT_ID}:function:{function_name}",
"Runtime": "python2.7", "Runtime": PYTHON_VERSION,
"Role": result["Role"], "Role": result["Role"],
"Handler": "lambda_function.lambda_handler", "Handler": "lambda_function.lambda_handler",
"CodeSize": len(zip_content), "CodeSize": len(zip_content),
@ -351,7 +352,7 @@ def test_create_function__with_tracingmode(tracing_mode):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
kwargs = dict( kwargs = dict(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -536,7 +537,7 @@ def test_get_function():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -570,7 +571,7 @@ def test_get_function():
assert result["Configuration"]["Handler"] == "lambda_function.lambda_handler" assert result["Configuration"]["Handler"] == "lambda_function.lambda_handler"
assert result["Configuration"]["MemorySize"] == 128 assert result["Configuration"]["MemorySize"] == 128
assert result["Configuration"]["Role"] == get_role_name() assert result["Configuration"]["Role"] == get_role_name()
assert result["Configuration"]["Runtime"] == "python2.7" assert result["Configuration"]["Runtime"] == PYTHON_VERSION
assert result["Configuration"]["Timeout"] == 3 assert result["Configuration"]["Timeout"] == 3
assert result["Configuration"]["Version"] == "$LATEST" assert result["Configuration"]["Version"] == "$LATEST"
assert "VpcConfig" in result["Configuration"] assert "VpcConfig" in result["Configuration"]
@ -612,7 +613,7 @@ def test_get_function_configuration(key):
fxn = conn.create_function( fxn = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -636,7 +637,7 @@ def test_get_function_configuration(key):
assert result["Handler"] == "lambda_function.lambda_handler" assert result["Handler"] == "lambda_function.lambda_handler"
assert result["MemorySize"] == 128 assert result["MemorySize"] == 128
assert result["Role"] == get_role_name() assert result["Role"] == get_role_name()
assert result["Runtime"] == "python2.7" assert result["Runtime"] == PYTHON_VERSION
assert result["Timeout"] == 3 assert result["Timeout"] == 3
assert result["Version"] == "$LATEST" assert result["Version"] == "$LATEST"
assert "VpcConfig" in result assert "VpcConfig" in result
@ -677,7 +678,7 @@ def test_get_function_code_signing_config(key):
fxn = conn.create_function( fxn = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -708,7 +709,7 @@ def test_get_function_by_arn():
fnc = conn.create_function( fnc = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -739,7 +740,7 @@ def test_delete_function():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -779,7 +780,7 @@ def test_delete_function_by_arn():
fnc = conn.create_function( fnc = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -842,7 +843,7 @@ def test_publish():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -903,7 +904,7 @@ def test_list_create_list_get_delete_list():
function_name = function_name function_name = function_name
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -928,7 +929,7 @@ def test_list_create_list_get_delete_list():
"Handler": "lambda_function.lambda_handler", "Handler": "lambda_function.lambda_handler",
"MemorySize": 128, "MemorySize": 128,
"Role": get_role_name(), "Role": get_role_name(),
"Runtime": "python2.7", "Runtime": PYTHON_VERSION,
"Timeout": 3, "Timeout": 3,
"Version": "$LATEST", "Version": "$LATEST",
"VpcConfig": {"SecurityGroupIds": [], "SubnetIds": []}, "VpcConfig": {"SecurityGroupIds": [], "SubnetIds": []},
@ -1003,7 +1004,7 @@ def test_get_function_created_with_zipfile():
zip_content = get_test_zip_file1() zip_content = get_test_zip_file1()
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1036,7 +1037,7 @@ def test_get_function_created_with_zipfile():
assert config["Handler"] == "lambda_function.handler" assert config["Handler"] == "lambda_function.handler"
assert config["MemorySize"] == 128 assert config["MemorySize"] == 128
assert config["Role"] == get_role_name() assert config["Role"] == get_role_name()
assert config["Runtime"] == "python2.7" assert config["Runtime"] == PYTHON_VERSION
assert config["Timeout"] == 3 assert config["Timeout"] == 3
assert config["Version"] == "$LATEST" assert config["Version"] == "$LATEST"
assert config["State"] == "Active" assert config["State"] == "Active"
@ -1061,7 +1062,7 @@ def test_list_versions_by_function():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1091,7 +1092,7 @@ def test_list_versions_by_function():
conn.create_function( conn.create_function(
FunctionName="testFunction_2", FunctionName="testFunction_2",
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1126,7 +1127,7 @@ def test_list_aliases():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1138,7 +1139,7 @@ def test_list_aliases():
conn.create_function( conn.create_function(
FunctionName=function_name2, FunctionName=function_name2,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1226,7 +1227,7 @@ def test_create_function_with_already_exists():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1239,7 +1240,7 @@ def test_create_function_with_already_exists():
with pytest.raises(ClientError) as exc: with pytest.raises(ClientError) as exc:
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1280,7 +1281,7 @@ def test_update_configuration(key):
fxn = conn.create_function( fxn = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1295,7 +1296,7 @@ def test_update_configuration(key):
assert fxn["Description"] == "test lambda function" assert fxn["Description"] == "test lambda function"
assert fxn["Handler"] == "lambda_function.lambda_handler" assert fxn["Handler"] == "lambda_function.lambda_handler"
assert fxn["MemorySize"] == 128 assert fxn["MemorySize"] == 128
assert fxn["Runtime"] == "python2.7" assert fxn["Runtime"] == PYTHON_VERSION
assert fxn["Timeout"] == 3 assert fxn["Timeout"] == 3
updated_config = conn.update_function_configuration( updated_config = conn.update_function_configuration(
@ -1334,7 +1335,7 @@ def test_update_function_zip(key):
fxn = conn.create_function( fxn = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content_one}, Code={"ZipFile": zip_content_one},
@ -1416,7 +1417,7 @@ def test_update_function_s3():
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -1552,7 +1553,7 @@ def test_remove_unknown_permission_throws_error():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1574,7 +1575,7 @@ def test_multiple_qualifiers():
fn_name = str(uuid4())[0:6] fn_name = str(uuid4())[0:6]
client.create_function( client.create_function(
FunctionName=fn_name, FunctionName=fn_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1651,7 +1652,7 @@ def test_put_function_concurrency_success():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1676,7 +1677,7 @@ def test_put_function_concurrency_not_enforced():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1705,7 +1706,7 @@ def test_put_function_concurrency_failure():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1740,7 +1741,7 @@ def test_put_function_concurrency_i_can_has_math():
function_name_2 = str(uuid4())[0:6] function_name_2 = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name_1, FunctionName=function_name_1,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -1751,7 +1752,7 @@ def test_put_function_concurrency_i_can_has_math():
) )
conn.create_function( conn.create_function(
FunctionName=function_name_2, FunctionName=function_name_2,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},

View File

@ -15,6 +15,7 @@ from .utilities import (
# See our Development Tips on writing tests for hints on how to write good tests: # See our Development Tips on writing tests for hints on how to write good tests:
# http://docs.getmoto.org/en/latest/docs/contributing/development_tips/tests.html # http://docs.getmoto.org/en/latest/docs/contributing/development_tips/tests.html
PYTHON_VERSION = "python3.11"
@mock_lambda @mock_lambda
@ -24,7 +25,7 @@ def test_create_alias():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -52,7 +53,7 @@ def test_create_alias_with_routing_config():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -78,7 +79,7 @@ def test_create_alias_using_function_arn():
fn = client.create_function( fn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -104,7 +105,7 @@ def test_delete_alias():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -129,7 +130,7 @@ def test_get_alias():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -159,14 +160,14 @@ def test_aliases_are_unique_per_function():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
) )
client.create_function( client.create_function(
FunctionName=function_name2, FunctionName=function_name2,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -208,7 +209,7 @@ def test_get_alias_using_function_arn():
fn = client.create_function( fn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -238,7 +239,7 @@ def test_get_alias_using_alias_arn():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -268,7 +269,7 @@ def test_get_unknown_alias():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -291,7 +292,7 @@ def test_update_alias():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -331,7 +332,7 @@ def test_update_alias_errors_if_version_doesnt_exist():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -363,7 +364,7 @@ def test_update_alias_routingconfig():
client.create_function( client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -399,7 +400,7 @@ def test_get_function_using_alias():
client.create_function( client.create_function(
FunctionName=fn_name, FunctionName=fn_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},

View File

@ -5,6 +5,7 @@ from moto import mock_lambda
from uuid import uuid4 from uuid import uuid4
from .utilities import get_role_name, get_test_zip_file1 from .utilities import get_role_name, get_test_zip_file1
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -18,7 +19,7 @@ def test_put_function_concurrency(key):
conn = boto3.client("lambda", _lambda_region) conn = boto3.client("lambda", _lambda_region)
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -43,7 +44,7 @@ def test_delete_function_concurrency(key):
conn = boto3.client("lambda", _lambda_region) conn = boto3.client("lambda", _lambda_region)
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -72,7 +73,7 @@ def test_get_function_concurrency(key):
conn = boto3.client("lambda", _lambda_region) conn = boto3.client("lambda", _lambda_region)
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},

View File

@ -15,6 +15,7 @@ from .utilities import (
) )
from ..markers import requires_docker from ..markers import requires_docker
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -30,7 +31,7 @@ def test_create_event_source_mapping():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -63,7 +64,7 @@ def test_invoke_function_from_sqs(key):
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -118,7 +119,7 @@ def test_invoke_function_from_dynamodb_put():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -174,7 +175,7 @@ def test_invoke_function_from_dynamodb_update():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -227,7 +228,7 @@ def test_invoke_function_from_sqs_exception():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file_error()}, Code={"ZipFile": get_test_zip_file_error()},
@ -295,7 +296,7 @@ def test_invoke_function_from_sns():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
result = conn.create_function( result = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -348,7 +349,7 @@ def test_list_event_source_mappings():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -381,7 +382,7 @@ def test_get_event_source_mapping():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -411,7 +412,7 @@ def test_update_event_source_mapping():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func1 = conn.create_function( func1 = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -422,7 +423,7 @@ def test_update_event_source_mapping():
) )
func2 = conn.create_function( func2 = conn.create_function(
FunctionName="testFunction2", FunctionName="testFunction2",
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},
@ -457,7 +458,7 @@ def test_delete_event_source_mapping():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func1 = conn.create_function( func1 = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.8", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file3()}, Code={"ZipFile": get_test_zip_file3()},

View File

@ -5,6 +5,8 @@ from moto import mock_lambda
from uuid import uuid4 from uuid import uuid4
from .utilities import get_test_zip_file1, get_role_name from .utilities import get_test_zip_file1, get_role_name
PYTHON_VERSION = "python3.11"
@mock_lambda @mock_lambda
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"]) @pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
@ -13,7 +15,7 @@ def test_create_function_url_config(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fxn = client.create_function( fxn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -39,7 +41,7 @@ def test_create_function_url_config_with_cors():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fxn = client.create_function( fxn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -74,7 +76,7 @@ def test_update_function_url_config_with_cors():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fxn = client.create_function( fxn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -107,7 +109,7 @@ def test_delete_function_url_config(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fxn = client.create_function( fxn = client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},

View File

@ -1,9 +1,7 @@
import base64 import base64
import boto3 import boto3
import io
import json import json
import pytest import pytest
import zipfile
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
from moto import mock_lambda, mock_ec2, settings from moto import mock_lambda, mock_ec2, settings
@ -21,131 +19,167 @@ from .utilities import (
) )
from ..markers import requires_docker from ..markers import requires_docker
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
@pytest.mark.network @pytest.mark.network
@mock_lambda
@requires_docker @requires_docker
def test_invoke_function_that_throws_error(): class TestLambdaInvocations_Error:
conn = boto3.client("lambda", _lambda_region) mock = mock_lambda()
function_name = str(uuid4())[0:6]
conn.create_function(
FunctionName=function_name,
Runtime="python3.8",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file_error()},
)
failure_response = conn.invoke( @classmethod
FunctionName=function_name, Payload=json.dumps({}), LogType="Tail" def setup_class(cls):
) cls.mock.start()
cls.client = boto3.client("lambda", _lambda_region)
cls.function_name = str(uuid4())[0:6]
cls.client.create_function(
FunctionName=cls.function_name,
Runtime=PYTHON_VERSION,
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file_error()},
)
assert failure_response["FunctionError"] == "Handled" @classmethod
def teardown_class(cls):
try:
cls.mock.stop()
except RuntimeError:
pass
payload = failure_response["Payload"].read().decode("utf-8") @pytest.mark.parametrize("invocation_type", [None, "RequestResponse"])
payload = json.loads(payload) def test_invoke_function_that_throws_error(self, invocation_type):
assert payload["errorType"] == "Exception" kw = {"LogType": "Tail"}
assert payload["errorMessage"] == "I failed!" if invocation_type:
assert "stackTrace" in payload kw["InvocationType"] = invocation_type
logs = base64.b64decode(failure_response["LogResult"]).decode("utf-8") failure_response = TestLambdaInvocations_Error.client.invoke(
assert "START RequestId:" in logs FunctionName=self.function_name, Payload=json.dumps({}), **kw
assert "I failed!" in logs )
assert "Traceback (most recent call last):" in logs
assert "END RequestId:" in logs assert failure_response["FunctionError"] == "Handled"
payload = failure_response["Payload"].read().decode("utf-8")
payload = json.loads(payload)
assert payload["errorType"] == "Exception"
assert payload["errorMessage"] == "I failed!"
assert "stackTrace" in payload
logs = base64.b64decode(failure_response["LogResult"]).decode("utf-8")
assert "START RequestId:" in logs
assert "I failed!" in logs
assert "Traceback (most recent call last):" in logs
assert "END RequestId:" in logs
@pytest.mark.network @pytest.mark.network
@pytest.mark.parametrize("invocation_type", [None, "RequestResponse"])
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
@mock_lambda
@requires_docker @requires_docker
def test_invoke_requestresponse_function(invocation_type, key): class TestLambdaInvocations:
conn = boto3.client("lambda", _lambda_region) mock = mock_lambda()
function_name = str(uuid4())[0:6]
fxn = conn.create_function(
FunctionName=function_name,
Runtime="python3.8",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()},
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
)
name_or_arn = fxn[key]
# Only add invocation-type keyword-argument when provided, otherwise the request @classmethod
# fails to be validated def setup_class(cls):
kw = {} cls.mock.start()
if invocation_type: cls.client = boto3.client("lambda", _lambda_region)
kw["InvocationType"] = invocation_type cls.function_name = str(uuid4())[0:6]
cls.fxn = cls.client.create_function(
FunctionName=cls.function_name,
Runtime=PYTHON_VERSION,
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()},
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
)
in_data = {"msg": "So long and thanks for all the fish"} @classmethod
success_result = conn.invoke( def teardown_class(cls):
FunctionName=name_or_arn, Payload=json.dumps(in_data), LogType="Tail", **kw try:
) cls.mock.stop()
except RuntimeError:
pass
if "FunctionError" in success_result: @pytest.mark.parametrize("invocation_type", [None, "RequestResponse"])
assert False, success_result["Payload"].read().decode("utf-8") @pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
def test_invoke_requestresponse_function(self, invocation_type, key):
name_or_arn = self.fxn[key]
assert success_result["StatusCode"] == 200 # Only add invocation-type keyword-argument when provided, otherwise the request
assert ( # fails to be validated
success_result["ResponseMetadata"]["HTTPHeaders"]["content-type"] kw = {}
== "application/json" if invocation_type:
) kw["InvocationType"] = invocation_type
logs = base64.b64decode(success_result["LogResult"]).decode("utf-8")
assert "START RequestId:" in logs in_data = {"msg": "So long and thanks for all the fish"}
assert "custom log event" in logs success_result = self.client.invoke(
assert "END RequestId:" in logs FunctionName=name_or_arn, Payload=json.dumps(in_data), LogType="Tail", **kw
)
payload = success_result["Payload"].read().decode("utf-8") if "FunctionError" in success_result:
assert json.loads(payload) == in_data assert False, success_result["Payload"].read().decode("utf-8")
# Logs should not be returned by default, only when the LogType-param is supplied assert success_result["StatusCode"] == 200
success_result = conn.invoke( assert (
FunctionName=name_or_arn, Payload=json.dumps(in_data), **kw success_result["ResponseMetadata"]["HTTPHeaders"]["content-type"]
) == "application/json"
)
logs = base64.b64decode(success_result["LogResult"]).decode("utf-8")
assert success_result["StatusCode"] == 200 assert "START RequestId:" in logs
assert ( assert "custom log event" in logs
success_result["ResponseMetadata"]["HTTPHeaders"]["content-type"] assert "END RequestId:" in logs
== "application/json"
)
assert "LogResult" not in success_result
payload = success_result["Payload"].read().decode("utf-8")
assert json.loads(payload) == in_data
@pytest.mark.network # Logs should not be returned by default, only when the LogType-param is supplied
@mock_lambda success_result = self.client.invoke(
@requires_docker FunctionName=name_or_arn, Payload=json.dumps(in_data), **kw
def test_invoke_event_function(): )
conn = boto3.client("lambda", _lambda_region)
function_name = str(uuid4())[0:6]
conn.create_function(
FunctionName=function_name,
Runtime="python3.9",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()},
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
)
with pytest.raises(ClientError): assert success_result["StatusCode"] == 200
conn.invoke(FunctionName="notAFunction", InvocationType="Event", Payload="{}") assert (
success_result["ResponseMetadata"]["HTTPHeaders"]["content-type"]
== "application/json"
)
assert "LogResult" not in success_result
in_data = {"msg": "So long and thanks for all the fish"} def test_invoke_event_function(self):
success_result = conn.invoke( with pytest.raises(ClientError):
FunctionName=function_name, InvocationType="Event", Payload=json.dumps(in_data) self.client.invoke(
) FunctionName="notAFunction", InvocationType="Event", Payload="{}"
assert success_result["StatusCode"] == 202 )
assert json.loads(success_result["Payload"].read().decode("utf-8")) == in_data
in_data = {"msg": "So long and thanks for all the fish"}
success_result = self.client.invoke(
FunctionName=self.function_name,
InvocationType="Event",
Payload=json.dumps(in_data),
)
assert success_result["StatusCode"] == 202
assert json.loads(success_result["Payload"].read().decode("utf-8")) == in_data
def test_invoke_dryrun_function(self):
in_data = {"msg": "So long and thanks for all the fish"}
success_result = self.client.invoke(
FunctionName=self.function_name,
InvocationType="DryRun",
Payload=json.dumps(in_data),
)
assert success_result["StatusCode"] == 204
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
def test_invoke_async_function(self, key):
name_or_arn = self.fxn[key]
success_result = self.client.invoke_async(
FunctionName=name_or_arn, InvokeArgs=json.dumps({"test": "event"})
)
assert success_result["Status"] == 202
@pytest.mark.network @pytest.mark.network
@ -157,7 +191,7 @@ def test_invoke_lambda_using_environment_port():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_lambda_using_environment_port()}, Code={"ZipFile": get_lambda_using_environment_port()},
@ -196,7 +230,7 @@ def test_invoke_lambda_using_networkmode():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_lambda_using_network_mode()}, Code={"ZipFile": get_lambda_using_network_mode()},
@ -220,7 +254,7 @@ def test_invoke_function_with_multiple_files_in_zip():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_zip_with_multiple_files()}, Code={"ZipFile": get_zip_with_multiple_files()},
@ -239,34 +273,6 @@ def test_invoke_function_with_multiple_files_in_zip():
} }
@pytest.mark.network
@mock_lambda
@requires_docker
def test_invoke_dryrun_function():
conn = boto3.client("lambda", _lambda_region)
function_name = str(uuid4())[0:6]
conn.create_function(
FunctionName=function_name,
Runtime="python3.8",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()},
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
)
with pytest.raises(ClientError):
conn.invoke(FunctionName="notAFunction", InvocationType="Event", Payload="{}")
in_data = {"msg": "So long and thanks for all the fish"}
success_result = conn.invoke(
FunctionName=function_name, InvocationType="DryRun", Payload=json.dumps(in_data)
)
assert success_result["StatusCode"] == 204
if settings.TEST_SERVER_MODE: if settings.TEST_SERVER_MODE:
@mock_ec2 @mock_ec2
@ -280,7 +286,7 @@ if settings.TEST_SERVER_MODE:
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file2()}, Code={"ZipFile": get_test_zip_file2()},
@ -305,74 +311,13 @@ if settings.TEST_SERVER_MODE:
@pytest.mark.network @pytest.mark.network
@mock_lambda @mock_lambda
@requires_docker @requires_docker
def test_invoke_lambda_error(): @pytest.mark.xfail(message="Fails intermittently - functionality exists though")
lambda_fx = """
def lambda_handler(event, context):
raise Exception('failsauce')
"""
zip_output = io.BytesIO()
zip_file = zipfile.ZipFile(zip_output, "w", zipfile.ZIP_DEFLATED)
zip_file.writestr("lambda_function.py", lambda_fx)
zip_file.close()
zip_output.seek(0)
client = boto3.client("lambda", region_name="us-east-1")
client.create_function(
FunctionName="test-lambda-fx",
Runtime="python3.8",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
Code={"ZipFile": zip_output.read()},
)
result = client.invoke(
FunctionName="test-lambda-fx", InvocationType="RequestResponse", LogType="Tail"
)
assert "FunctionError" in result
assert result["FunctionError"] == "Handled"
@pytest.mark.network
@pytest.mark.parametrize("key", ["FunctionName", "FunctionArn"])
@mock_lambda
@requires_docker
def test_invoke_async_function(key):
conn = boto3.client("lambda", _lambda_region)
function_name = str(uuid4())[0:6]
fxn = conn.create_function(
FunctionName=function_name,
Runtime="python3.8",
Role=get_role_name(),
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()},
Description="test lambda function",
Timeout=3,
MemorySize=128,
Publish=True,
)
name_or_arn = fxn[key]
success_result = conn.invoke_async(
FunctionName=name_or_arn, InvokeArgs=json.dumps({"test": "event"})
)
assert success_result["Status"] == 202
@pytest.mark.network
@mock_lambda
@requires_docker
def test_invoke_function_large_response(): def test_invoke_function_large_response():
# AWS Lambda should only return bodies smaller than 6 MB # AWS Lambda should only return bodies smaller than 6 MB
conn = boto3.client("lambda", _lambda_region) conn = boto3.client("lambda", _lambda_region)
fxn = conn.create_function( fxn = conn.create_function(
FunctionName=str(uuid4())[0:6], FunctionName=str(uuid4())[0:6],
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_largeresponse()}, Code={"ZipFile": get_test_zip_largeresponse()},

View File

@ -9,6 +9,7 @@ from uuid import uuid4
from .utilities import get_role_name, get_test_zip_file1 from .utilities import get_role_name, get_test_zip_file1
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -87,7 +88,7 @@ def test_get_lambda_layers():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -119,7 +120,7 @@ def test_get_lambda_layers():
with pytest.raises(ClientError) as exc: with pytest.raises(ClientError) as exc:
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},

View File

@ -8,6 +8,7 @@ from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
from uuid import uuid4 from uuid import uuid4
from .utilities import get_role_name, get_test_zip_file1, get_test_zip_file2 from .utilities import get_role_name, get_test_zip_file1, get_test_zip_file2
PYTHON_VERSION = "python3.11"
_lambda_region = "us-west-2" _lambda_region = "us-west-2"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -23,7 +24,7 @@ def test_add_function_permission(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -54,7 +55,7 @@ def test_add_permission_with_principalorgid():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fn_arn = conn.create_function( fn_arn = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -85,7 +86,7 @@ def test_get_function_policy(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -124,7 +125,7 @@ def test_get_policy_with_qualifier():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -169,7 +170,7 @@ def test_add_permission_with_unknown_qualifier():
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -204,7 +205,7 @@ def test_remove_function_permission(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},
@ -234,7 +235,7 @@ def test_remove_function_permission__with_qualifier(key):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
f = conn.create_function( f = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=(get_role_name()), Role=(get_role_name()),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},

View File

@ -7,6 +7,7 @@ from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
from uuid import uuid4 from uuid import uuid4
from .utilities import get_role_name, get_test_zip_file2 from .utilities import get_role_name, get_test_zip_file2
PYTHON_VERSION = "python3.11"
_lambda_region = "us-east-1" _lambda_region = "us-east-1"
boto3.setup_default_session(region_name=_lambda_region) boto3.setup_default_session(region_name=_lambda_region)
@ -28,7 +29,7 @@ def test_tags():
function = conn.create_function( function = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},
@ -80,7 +81,7 @@ def test_create_function_with_tags():
function = conn.create_function( function = conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime=PYTHON_VERSION,
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"S3Bucket": bucket_name, "S3Key": "test.zip"}, Code={"S3Bucket": bucket_name, "S3Key": "test.zip"},

View File

@ -152,7 +152,7 @@ def create_invalid_lambda(role):
with pytest.raises(ClientError) as err: with pytest.raises(ClientError) as err:
conn.create_function( conn.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python2.7", Runtime="python3.11",
Role=role, Role=role,
Handler="lambda_function.handler", Handler="lambda_function.handler",
Code={"ZipFile": zip_content}, Code={"ZipFile": zip_content},

View File

@ -2209,7 +2209,7 @@ def test_create_stack_lambda_and_dynamodb():
"FunctionName": "func1", "FunctionName": "func1",
"Handler": "handler.handler", "Handler": "handler.handler",
"Role": get_role_name(), "Role": get_role_name(),
"Runtime": "python2.7", "Runtime": "python3.11",
"Description": "descr", "Description": "descr",
"MemorySize": 12345, "MemorySize": 12345,
}, },

View File

@ -199,7 +199,7 @@ def lambda_handler(event, context):
"Description": "Test function", "Description": "Test function",
"MemorySize": 128, "MemorySize": 128,
"Role": {"Fn::GetAtt": ["MyRole", "Arn"]}, "Role": {"Fn::GetAtt": ["MyRole", "Arn"]},
"Runtime": "python2.7", "Runtime": "python3.11",
"Environment": {"Variables": {"TEST_ENV_KEY": "test-env-val"}}, "Environment": {"Variables": {"TEST_ENV_KEY": "test-env-val"}},
"ReservedConcurrentExecutions": 10, "ReservedConcurrentExecutions": 10,
}, },
@ -231,7 +231,7 @@ def lambda_handler(event, context):
assert result["Functions"][0]["Description"] == "Test function" assert result["Functions"][0]["Description"] == "Test function"
assert result["Functions"][0]["Handler"] == "index.lambda_handler" assert result["Functions"][0]["Handler"] == "index.lambda_handler"
assert result["Functions"][0]["MemorySize"] == 128 assert result["Functions"][0]["MemorySize"] == 128
assert result["Functions"][0]["Runtime"] == "python2.7" assert result["Functions"][0]["Runtime"] == "python3.11"
assert result["Functions"][0]["Environment"] == { assert result["Functions"][0]["Environment"] == {
"Variables": {"TEST_ENV_KEY": "test-env-val"} "Variables": {"TEST_ENV_KEY": "test-env-val"}
} }

View File

@ -65,7 +65,7 @@ def create_lambda_for_config_rule():
lambda_client = boto3.client("lambda", region_name=TEST_REGION) lambda_client = boto3.client("lambda", region_name=TEST_REGION)
lambda_client.create_function( lambda_client.create_function(
FunctionName="test_config_rule", FunctionName="test_config_rule",
Runtime="python3.8", Runtime="python3.11",
Role=lambda_role, Role=lambda_role,
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zipped_lambda_function()}, Code={"ZipFile": zipped_lambda_function()},

View File

@ -26,7 +26,7 @@ def test_creating_bucket__invokes_lambda():
func = lambda_client.create_function( func = lambda_client.create_function(
FunctionName="foobar", FunctionName="foobar",
Runtime="python3.8", Runtime="python3.11",
Role=role["Arn"], Role=role["Arn"],
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -107,7 +107,7 @@ def test_create_disabled_rule():
func = lambda_client.create_function( func = lambda_client.create_function(
FunctionName="foobar", FunctionName="foobar",
Runtime="python3.8", Runtime="python3.11",
Role=role["Arn"], Role=role["Arn"],
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -235,7 +235,7 @@ def test_creating_bucket__but_invoke_lambda_on_create_object():
func = lambda_client.create_function( func = lambda_client.create_function(
FunctionName="foobar", FunctionName="foobar",
Runtime="python3.8", Runtime="python3.11",
Role=role["Arn"], Role=role["Arn"],
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},

View File

@ -31,7 +31,7 @@ def test_put_subscription_filter_update():
) )
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name(region_name), Role=_get_role_name(region_name),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},
@ -122,7 +122,7 @@ def test_put_subscription_filter_with_lambda():
) )
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name(region_name), Role=_get_role_name(region_name),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},
@ -204,7 +204,7 @@ def test_subscription_filter_applies_to_new_streams():
client_logs.create_log_group(logGroupName=log_group_name) client_logs.create_log_group(logGroupName=log_group_name)
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name(region_name), Role=_get_role_name(region_name),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},
@ -420,7 +420,7 @@ def test_delete_subscription_filter():
client_logs.create_log_group(logGroupName=log_group_name) client_logs.create_log_group(logGroupName=log_group_name)
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name(region_name), Role=_get_role_name(region_name),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},
@ -455,7 +455,7 @@ def test_delete_subscription_filter_errors():
client_logs.create_log_group(logGroupName=log_group_name) client_logs.create_log_group(logGroupName=log_group_name)
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name(region_name), Role=_get_role_name(region_name),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},
@ -508,7 +508,7 @@ def test_put_subscription_filter_errors():
client_lambda = boto3.client("lambda", "us-east-1") client_lambda = boto3.client("lambda", "us-east-1")
function_arn = client_lambda.create_function( function_arn = client_lambda.create_function(
FunctionName="test", FunctionName="test",
Runtime="python3.8", Runtime="python3.11",
Role=_get_role_name("us-east-1"), Role=_get_role_name("us-east-1"),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": _get_test_zip_file()}, Code={"ZipFile": _get_test_zip_file()},

View File

@ -94,8 +94,8 @@ def test_get_query_results():
# Only find events from last 2 minutes # Only find events from last 2 minutes
query_id = client.start_query( query_id = client.start_query(
logGroupName="test", logGroupName="test",
startTime=int(unix_time(datetime.utcnow() - timedelta(minutes=2))), startTime=int(unix_time(datetime.utcnow() - timedelta(minutes=2, seconds=1))),
endTime=int(unix_time(datetime.utcnow())), endTime=int(unix_time(datetime.utcnow() - timedelta(seconds=1))),
queryString="fields @message", queryString="fields @message",
)["queryId"] )["queryId"]

View File

@ -613,7 +613,7 @@ def test_get_resources_lambda():
# create one lambda without tags # create one lambda without tags
client.create_function( client.create_function(
FunctionName="lambda-no-tag", FunctionName="lambda-no-tag",
Runtime="python2.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zipfile}, Code={"ZipFile": zipfile},
@ -626,7 +626,7 @@ def test_get_resources_lambda():
# create second & third lambda with tags # create second & third lambda with tags
circle_arn = client.create_function( circle_arn = client.create_function(
FunctionName="lambda-tag-value-1", FunctionName="lambda-tag-value-1",
Runtime="python2.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zipfile}, Code={"ZipFile": zipfile},
@ -639,7 +639,7 @@ def test_get_resources_lambda():
rectangle_arn = client.create_function( rectangle_arn = client.create_function(
FunctionName="lambda-tag-value-2", FunctionName="lambda-tag-value-2",
Runtime="python2.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": zipfile}, Code={"ZipFile": zipfile},

View File

@ -43,7 +43,7 @@ def test_objectcreated_put__invokes_lambda(match_events, actual_event):
function_name = str(uuid4())[0:6] function_name = str(uuid4())[0:6]
fn_arn = lambda_client.create_function( fn_arn = lambda_client.create_function(
FunctionName=function_name, FunctionName=function_name,
Runtime="python3.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file_print_event()}, Code={"ZipFile": get_test_zip_file_print_event()},

View File

@ -774,7 +774,7 @@ def test_cancel_rotate_secret():
) )
func = lambda_conn.create_function( func = lambda_conn.create_function(
FunctionName="testFunction", FunctionName="testFunction",
Runtime="python3.8", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_rotation_zip_file()}, Code={"ZipFile": get_rotation_zip_file()},
@ -1039,7 +1039,7 @@ if settings.TEST_SERVER_MODE:
) )
func = lambda_conn.create_function( func = lambda_conn.create_function(
FunctionName="testFunction", FunctionName="testFunction",
Runtime="python3.8", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_rotation_zip_file()}, Code={"ZipFile": get_rotation_zip_file()},

View File

@ -469,7 +469,7 @@ if not settings.TEST_SERVER_MODE:
FunctionName="testFunction", FunctionName="testFunction",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Runtime="python2.7", Runtime="python3.11",
Role=role["Role"]["Arn"], Role=role["Role"]["Arn"],
) )

View File

@ -1932,7 +1932,7 @@ def test_delete_message_batch_with_invalid_receipt_id():
def test_message_attributes_in_receive_message(): def test_message_attributes_in_receive_message():
sqs = boto3.resource("sqs", region_name="us-east-1") sqs = boto3.resource("sqs", region_name="us-east-1")
conn = boto3.client("sqs", region_name="us-east-1") conn = boto3.client("sqs", region_name="us-east-1")
q_resp = conn.create_queue(QueueName="test-queue") q_resp = conn.create_queue(QueueName=str(uuid4())[0:6])
queue = sqs.Queue(q_resp["QueueUrl"]) queue = sqs.Queue(q_resp["QueueUrl"])
body_one = "this is a test message" body_one = "this is a test message"
@ -3203,7 +3203,7 @@ def test_message_delay_is_more_than_15_minutes():
@mock_sqs @mock_sqs
def test_receive_message_that_becomes_visible_while_long_polling(): def test_receive_message_that_becomes_visible_while_long_polling():
sqs = boto3.resource("sqs", region_name="us-east-1") sqs = boto3.resource("sqs", region_name="us-east-1")
queue = sqs.create_queue(QueueName="test-queue") queue = sqs.create_queue(QueueName=str(uuid4())[0:6])
msg_body = str(uuid4()) msg_body = str(uuid4())
queue.send_message(MessageBody=msg_body) queue.send_message(MessageBody=msg_body)
messages = queue.receive_messages() messages = queue.receive_messages()

View File

@ -24,7 +24,7 @@ def test_invoke_function_from_sqs_queue():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=fn_name, FunctionName=fn_name,
Runtime="python2.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file1()}, Code={"ZipFile": get_test_zip_file1()},
@ -95,7 +95,7 @@ def test_invoke_function_from_sqs_fifo_queue():
conn = boto3.client("lambda", region_name="us-east-1") conn = boto3.client("lambda", region_name="us-east-1")
func = conn.create_function( func = conn.create_function(
FunctionName=fn_name, FunctionName=fn_name,
Runtime="python3.7", Runtime="python3.11",
Role=get_role_name(), Role=get_role_name(),
Handler="lambda_function.lambda_handler", Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file_print_event()}, Code={"ZipFile": get_test_zip_file_print_event()},