Merge pull request #2717 from bblommers/feature/s3_illegallocationconstraint
S3 Feature: Add IllegalLocationConstraintException
This commit is contained in:
commit
e40d75359a
9 changed files with 282 additions and 150 deletions
|
|
@ -86,14 +86,14 @@ def lambda_handler(event, context):
|
|||
|
||||
@mock_lambda
|
||||
def test_list_functions():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
result = conn.list_functions()
|
||||
result["Functions"].should.have.length_of(0)
|
||||
|
||||
|
||||
@mock_lambda
|
||||
def test_invoke_requestresponse_function():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python2.7",
|
||||
|
|
@ -163,7 +163,7 @@ def test_invoke_requestresponse_function_with_arn():
|
|||
|
||||
@mock_lambda
|
||||
def test_invoke_event_function():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python2.7",
|
||||
|
|
@ -193,11 +193,11 @@ if settings.TEST_SERVER_MODE:
|
|||
@mock_ec2
|
||||
@mock_lambda
|
||||
def test_invoke_function_get_ec2_volume():
|
||||
conn = boto3.resource("ec2", "us-west-2")
|
||||
vol = conn.create_volume(Size=99, AvailabilityZone="us-west-2")
|
||||
conn = boto3.resource("ec2", _lambda_region)
|
||||
vol = conn.create_volume(Size=99, AvailabilityZone=_lambda_region)
|
||||
vol = conn.Volume(vol.id)
|
||||
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python3.7",
|
||||
|
|
@ -227,14 +227,14 @@ if settings.TEST_SERVER_MODE:
|
|||
@mock_ec2
|
||||
@mock_lambda
|
||||
def test_invoke_function_from_sns():
|
||||
logs_conn = boto3.client("logs", region_name="us-west-2")
|
||||
sns_conn = boto3.client("sns", region_name="us-west-2")
|
||||
logs_conn = boto3.client("logs", region_name=_lambda_region)
|
||||
sns_conn = boto3.client("sns", region_name=_lambda_region)
|
||||
sns_conn.create_topic(Name="some-topic")
|
||||
topics_json = sns_conn.list_topics()
|
||||
topics = topics_json["Topics"]
|
||||
topic_arn = topics[0]["TopicArn"]
|
||||
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
result = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python2.7",
|
||||
|
|
@ -277,7 +277,7 @@ def test_invoke_function_from_sns():
|
|||
|
||||
@mock_lambda
|
||||
def test_create_based_on_s3_with_missing_bucket():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function.when.called_with(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -297,12 +297,15 @@ def test_create_based_on_s3_with_missing_bucket():
|
|||
@mock_s3
|
||||
@freeze_time("2015-01-01 00:00:00")
|
||||
def test_create_function_from_aws_bucket():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
zip_content = get_test_zip_file2()
|
||||
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
result = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -350,7 +353,7 @@ def test_create_function_from_aws_bucket():
|
|||
@mock_lambda
|
||||
@freeze_time("2015-01-01 00:00:00")
|
||||
def test_create_function_from_zipfile():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
zip_content = get_test_zip_file1()
|
||||
result = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -395,12 +398,15 @@ def test_create_function_from_zipfile():
|
|||
@mock_s3
|
||||
@freeze_time("2015-01-01 00:00:00")
|
||||
def test_get_function():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file1()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -464,7 +470,10 @@ def test_get_function():
|
|||
def test_get_function_by_arn():
|
||||
bucket_name = "test-bucket"
|
||||
s3_conn = boto3.client("s3", "us-east-1")
|
||||
s3_conn.create_bucket(Bucket=bucket_name)
|
||||
s3_conn.create_bucket(
|
||||
Bucket=bucket_name,
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket=bucket_name, Key="test.zip", Body=zip_content)
|
||||
|
|
@ -489,12 +498,15 @@ def test_get_function_by_arn():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_delete_function():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -525,7 +537,10 @@ def test_delete_function():
|
|||
def test_delete_function_by_arn():
|
||||
bucket_name = "test-bucket"
|
||||
s3_conn = boto3.client("s3", "us-east-1")
|
||||
s3_conn.create_bucket(Bucket=bucket_name)
|
||||
s3_conn.create_bucket(
|
||||
Bucket=bucket_name,
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket=bucket_name, Key="test.zip", Body=zip_content)
|
||||
|
|
@ -550,7 +565,7 @@ def test_delete_function_by_arn():
|
|||
|
||||
@mock_lambda
|
||||
def test_delete_unknown_function():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.delete_function.when.called_with(
|
||||
FunctionName="testFunctionThatDoesntExist"
|
||||
).should.throw(botocore.client.ClientError)
|
||||
|
|
@ -559,12 +574,15 @@ def test_delete_unknown_function():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_publish():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -609,12 +627,15 @@ def test_list_create_list_get_delete_list():
|
|||
test `list -> create -> list -> get -> delete -> list` integration
|
||||
|
||||
"""
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.list_functions()["Functions"].should.have.length_of(0)
|
||||
|
||||
|
|
@ -711,12 +732,15 @@ def test_tags():
|
|||
"""
|
||||
test list_tags -> tag_resource -> list_tags -> tag_resource -> list_tags -> untag_resource -> list_tags integration
|
||||
"""
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
function = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -768,7 +792,7 @@ def test_tags_not_found():
|
|||
"""
|
||||
Test list_tags and tag_resource when the lambda with the given arn does not exist
|
||||
"""
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.list_tags.when.called_with(
|
||||
Resource="arn:aws:lambda:{}:function:not-found".format(ACCOUNT_ID)
|
||||
).should.throw(botocore.client.ClientError)
|
||||
|
|
@ -786,7 +810,7 @@ def test_tags_not_found():
|
|||
|
||||
@mock_lambda
|
||||
def test_invoke_async_function():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python2.7",
|
||||
|
|
@ -809,7 +833,7 @@ def test_invoke_async_function():
|
|||
@mock_lambda
|
||||
@freeze_time("2015-01-01 00:00:00")
|
||||
def test_get_function_created_with_zipfile():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
zip_content = get_test_zip_file1()
|
||||
result = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -855,7 +879,7 @@ def test_get_function_created_with_zipfile():
|
|||
|
||||
@mock_lambda
|
||||
def test_add_function_permission():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
zip_content = get_test_zip_file1()
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -886,7 +910,7 @@ def test_add_function_permission():
|
|||
|
||||
@mock_lambda
|
||||
def test_get_function_policy():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
zip_content = get_test_zip_file1()
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -921,12 +945,15 @@ def test_get_function_policy():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_list_versions_by_function():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -977,12 +1004,15 @@ def test_list_versions_by_function():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_create_function_with_already_exists():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -1014,7 +1044,7 @@ def test_create_function_with_already_exists():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_list_versions_by_function_for_nonexistent_function():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
versions = conn.list_versions_by_function(FunctionName="testFunction")
|
||||
|
||||
assert len(versions["Versions"]) == 0
|
||||
|
|
@ -1363,12 +1393,15 @@ def test_delete_event_source_mapping():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_update_configuration():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file2()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
fxn = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
|
|
@ -1411,7 +1444,7 @@ def test_update_configuration():
|
|||
|
||||
@mock_lambda
|
||||
def test_update_function_zip():
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
zip_content_one = get_test_zip_file1()
|
||||
|
||||
|
|
@ -1466,13 +1499,16 @@ def test_update_function_zip():
|
|||
@mock_lambda
|
||||
@mock_s3
|
||||
def test_update_function_s3():
|
||||
s3_conn = boto3.client("s3", "us-west-2")
|
||||
s3_conn.create_bucket(Bucket="test-bucket")
|
||||
s3_conn = boto3.client("s3", _lambda_region)
|
||||
s3_conn.create_bucket(
|
||||
Bucket="test-bucket",
|
||||
CreateBucketConfiguration={"LocationConstraint": _lambda_region},
|
||||
)
|
||||
|
||||
zip_content = get_test_zip_file1()
|
||||
s3_conn.put_object(Bucket="test-bucket", Key="test.zip", Body=zip_content)
|
||||
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
|
||||
fxn = conn.create_function(
|
||||
FunctionName="testFunctionS3",
|
||||
|
|
@ -1553,7 +1589,7 @@ def test_create_function_with_unknown_arn():
|
|||
|
||||
|
||||
def create_invalid_lambda(role):
|
||||
conn = boto3.client("lambda", "us-west-2")
|
||||
conn = boto3.client("lambda", _lambda_region)
|
||||
zip_content = get_test_zip_file1()
|
||||
with assert_raises(ClientError) as err:
|
||||
conn.create_function(
|
||||
|
|
@ -1572,7 +1608,7 @@ def create_invalid_lambda(role):
|
|||
|
||||
def get_role_name():
|
||||
with mock_iam():
|
||||
iam = boto3.client("iam", region_name="us-west-2")
|
||||
iam = boto3.client("iam", region_name=_lambda_region)
|
||||
try:
|
||||
return iam.get_role(RoleName="my-role")["Role"]["Arn"]
|
||||
except ClientError:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue