List dependencies for services - add integration test to verify
This commit is contained in:
parent
9f0f230d13
commit
db1d7123f6
41 changed files with 1405 additions and 1245 deletions
|
|
@ -3,7 +3,6 @@ from __future__ import unicode_literals
|
|||
|
||||
import base64
|
||||
import json
|
||||
import os
|
||||
import time
|
||||
import uuid
|
||||
|
||||
|
|
@ -17,34 +16,13 @@ from boto.exception import SQSError
|
|||
from boto.sqs.message import Message, RawMessage
|
||||
from botocore.exceptions import ClientError
|
||||
from freezegun import freeze_time
|
||||
from moto import mock_sqs, mock_sqs_deprecated, mock_cloudformation, settings
|
||||
from moto import mock_sqs, mock_sqs_deprecated, mock_lambda, mock_logs, settings
|
||||
from nose import SkipTest
|
||||
from nose.tools import assert_raises
|
||||
from tests.helpers import requires_boto_gte
|
||||
from tests.test_awslambda.test_lambda import get_test_zip_file1, get_role_name
|
||||
from moto.core import ACCOUNT_ID
|
||||
|
||||
sqs_template_with_tags = """
|
||||
{
|
||||
"AWSTemplateFormatVersion": "2010-09-09",
|
||||
"Resources": {
|
||||
"SQSQueue": {
|
||||
"Type": "AWS::SQS::Queue",
|
||||
"Properties": {
|
||||
"Tags" : [
|
||||
{
|
||||
"Key" : "keyname1",
|
||||
"Value" : "value1"
|
||||
},
|
||||
{
|
||||
"Key" : "keyname2",
|
||||
"Value" : "value2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}"""
|
||||
|
||||
TEST_POLICY = """
|
||||
{
|
||||
"Version":"2012-10-17",
|
||||
|
|
@ -2042,15 +2020,54 @@ def test_send_messages_to_fifo_without_message_group_id():
|
|||
)
|
||||
|
||||
|
||||
@mock_logs
|
||||
@mock_lambda
|
||||
@mock_sqs
|
||||
@mock_cloudformation
|
||||
def test_create_from_cloudformation_json_with_tags():
|
||||
cf = boto3.client("cloudformation", region_name="us-east-1")
|
||||
client = boto3.client("sqs", region_name="us-east-1")
|
||||
def test_invoke_function_from_sqs_exception():
|
||||
logs_conn = boto3.client("logs", region_name="us-east-1")
|
||||
sqs = boto3.resource("sqs", region_name="us-east-1")
|
||||
queue = sqs.create_queue(QueueName="test-sqs-queue1")
|
||||
|
||||
cf.create_stack(StackName="test-sqs", TemplateBody=sqs_template_with_tags)
|
||||
conn = boto3.client("lambda", region_name="us-east-1")
|
||||
func = conn.create_function(
|
||||
FunctionName="testFunction",
|
||||
Runtime="python2.7",
|
||||
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,
|
||||
)
|
||||
|
||||
queue_url = client.list_queues()["QueueUrls"][0]
|
||||
response = conn.create_event_source_mapping(
|
||||
EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"]
|
||||
)
|
||||
|
||||
queue_tags = client.list_queue_tags(QueueUrl=queue_url)["Tags"]
|
||||
queue_tags.should.equal({"keyname1": "value1", "keyname2": "value2"})
|
||||
assert response["EventSourceArn"] == queue.attributes["QueueArn"]
|
||||
assert response["State"] == "Enabled"
|
||||
|
||||
entries = [{"Id": "1", "MessageBody": json.dumps({"uuid": str(uuid.uuid4()), "test": "test"})}]
|
||||
|
||||
queue.send_messages(Entries=entries)
|
||||
|
||||
start = time.time()
|
||||
while (time.time() - start) < 30:
|
||||
result = logs_conn.describe_log_streams(logGroupName="/aws/lambda/testFunction")
|
||||
log_streams = result.get("logStreams")
|
||||
if not log_streams:
|
||||
time.sleep(1)
|
||||
continue
|
||||
assert len(log_streams) >= 1
|
||||
|
||||
result = logs_conn.get_log_events(
|
||||
logGroupName="/aws/lambda/testFunction",
|
||||
logStreamName=log_streams[0]["logStreamName"],
|
||||
)
|
||||
for event in result.get("events"):
|
||||
if "custom log event" in event["message"]:
|
||||
return
|
||||
time.sleep(1)
|
||||
|
||||
assert False, "Test Failed"
|
||||
|
|
|
|||
38
tests/test_sqs/test_sqs_cloudformation.py
Normal file
38
tests/test_sqs/test_sqs_cloudformation.py
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import boto3
|
||||
from moto import mock_sqs, mock_cloudformation
|
||||
|
||||
sqs_template_with_tags = """
|
||||
{
|
||||
"AWSTemplateFormatVersion": "2010-09-09",
|
||||
"Resources": {
|
||||
"SQSQueue": {
|
||||
"Type": "AWS::SQS::Queue",
|
||||
"Properties": {
|
||||
"Tags" : [
|
||||
{
|
||||
"Key" : "keyname1",
|
||||
"Value" : "value1"
|
||||
},
|
||||
{
|
||||
"Key" : "keyname2",
|
||||
"Value" : "value2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}"""
|
||||
|
||||
|
||||
@mock_sqs
|
||||
@mock_cloudformation
|
||||
def test_create_from_cloudformation_json_with_tags():
|
||||
cf = boto3.client("cloudformation", region_name="us-east-1")
|
||||
client = boto3.client("sqs", region_name="us-east-1")
|
||||
|
||||
cf.create_stack(StackName="test-sqs", TemplateBody=sqs_template_with_tags)
|
||||
|
||||
queue_url = client.list_queues()["QueueUrls"][0]
|
||||
|
||||
queue_tags = client.list_queue_tags(QueueUrl=queue_url)["Tags"]
|
||||
queue_tags.should.equal({"keyname1": "value1", "keyname2": "value2"})
|
||||
Loading…
Add table
Add a link
Reference in a new issue