Fix conflict with subnet/network ACL association during subnet creation.
This commit is contained in:
commit
2a6c4c89bf
54 changed files with 616 additions and 303 deletions
|
|
@ -1,9 +1,12 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
|
||||
import boto
|
||||
import boto.cloudformation
|
||||
import sure # noqa
|
||||
# Ensure 'assert_raises' context manager support for Python 2.6
|
||||
import tests.backport_assert_raises
|
||||
import tests.backport_assert_raises # noqa
|
||||
from nose.tools import assert_raises
|
||||
|
||||
from moto import mock_cloudformation
|
||||
|
|
@ -38,6 +41,18 @@ def test_create_stack():
|
|||
stack.get_template().should.equal(dummy_template)
|
||||
|
||||
|
||||
@mock_cloudformation
|
||||
def test_creating_stacks_across_regions():
|
||||
west1_conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
west1_conn.create_stack("test_stack", template_body=dummy_template_json)
|
||||
|
||||
west2_conn = boto.cloudformation.connect_to_region("us-west-2")
|
||||
west2_conn.create_stack("test_stack", template_body=dummy_template_json)
|
||||
|
||||
list(west1_conn.describe_stacks()).should.have.length_of(1)
|
||||
list(west2_conn.describe_stacks()).should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_cloudformation
|
||||
def test_create_stack_with_notification_arn():
|
||||
conn = boto.connect_cloudformation()
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ from __future__ import unicode_literals
|
|||
import json
|
||||
|
||||
import boto
|
||||
import boto.cloudformation
|
||||
import boto.ec2
|
||||
import boto.ec2.autoscale
|
||||
import boto.ec2.elb
|
||||
import boto.iam
|
||||
import boto.vpc
|
||||
import sure # noqa
|
||||
|
||||
from moto import (
|
||||
|
|
@ -38,7 +44,7 @@ def test_stack_sqs_integration():
|
|||
}
|
||||
sqs_template_json = json.dumps(sqs_template)
|
||||
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=sqs_template_json,
|
||||
|
|
@ -68,13 +74,13 @@ def test_stack_ec2_integration():
|
|||
}
|
||||
ec2_template_json = json.dumps(ec2_template)
|
||||
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"ec2_stack",
|
||||
template_body=ec2_template_json,
|
||||
)
|
||||
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
reservation = ec2_conn.get_all_instances()[0]
|
||||
ec2_instance = reservation.instances[0]
|
||||
|
||||
|
|
@ -111,16 +117,16 @@ def test_stack_elb_integration_with_attached_ec2_instances():
|
|||
}
|
||||
elb_template_json = json.dumps(elb_template)
|
||||
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"elb_stack",
|
||||
template_body=elb_template_json,
|
||||
)
|
||||
|
||||
elb_conn = boto.connect_elb()
|
||||
elb_conn = boto.ec2.elb.connect_to_region("us-west-1")
|
||||
load_balancer = elb_conn.get_all_load_balancers()[0]
|
||||
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
reservation = ec2_conn.get_all_instances()[0]
|
||||
ec2_instance = reservation.instances[0]
|
||||
instance_id = ec2_instance.id
|
||||
|
|
@ -183,13 +189,13 @@ def test_stack_security_groups():
|
|||
}
|
||||
security_group_template_json = json.dumps(security_group_template)
|
||||
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"security_group_stack",
|
||||
template_body=security_group_template_json,
|
||||
)
|
||||
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
security_groups = ec2_conn.get_all_security_groups()
|
||||
for group in security_groups:
|
||||
if "InstanceSecurityGroup" in group.name:
|
||||
|
|
@ -266,13 +272,13 @@ def test_autoscaling_group_with_elb():
|
|||
|
||||
web_setup_template_json = json.dumps(web_setup_template)
|
||||
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"web_stack",
|
||||
template_body=web_setup_template_json,
|
||||
)
|
||||
|
||||
autoscale_conn = boto.connect_autoscale()
|
||||
autoscale_conn = boto.ec2.autoscale.connect_to_region("us-west-1")
|
||||
autoscale_group = autoscale_conn.get_all_groups()[0]
|
||||
autoscale_group.launch_config_name.should.contain("my-launch-config")
|
||||
autoscale_group.load_balancers[0].should.equal('my-elb')
|
||||
|
|
@ -281,7 +287,7 @@ def test_autoscaling_group_with_elb():
|
|||
autoscale_conn.get_all_launch_configurations().should.have.length_of(1)
|
||||
|
||||
# Confirm the ELB was actually created
|
||||
elb_conn = boto.connect_elb()
|
||||
elb_conn = boto.ec2.elb.connect_to_region("us-west-1")
|
||||
elb_conn.get_all_load_balancers().should.have.length_of(1)
|
||||
|
||||
stack = conn.describe_stacks()[0]
|
||||
|
|
@ -301,13 +307,13 @@ def test_autoscaling_group_with_elb():
|
|||
def test_vpc_single_instance_in_subnet():
|
||||
|
||||
template_json = json.dumps(vpc_single_instance_in_subnet.template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
|
||||
vpc_conn = boto.connect_vpc()
|
||||
vpc_conn = boto.vpc.connect_to_region("us-west-1")
|
||||
vpc = vpc_conn.get_all_vpcs()[0]
|
||||
vpc.cidr_block.should.equal("10.0.0.0/16")
|
||||
|
||||
|
|
@ -317,7 +323,7 @@ def test_vpc_single_instance_in_subnet():
|
|||
subnet = vpc_conn.get_all_subnets()[0]
|
||||
subnet.vpc_id.should.equal(vpc.id)
|
||||
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
reservation = ec2_conn.get_all_instances()[0]
|
||||
instance = reservation.instances[0]
|
||||
# Check that the EIP is attached the the EC2 instance
|
||||
|
|
@ -426,13 +432,13 @@ def test_iam_roles():
|
|||
}
|
||||
|
||||
iam_template_json = json.dumps(iam_template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=iam_template_json,
|
||||
)
|
||||
|
||||
iam_conn = boto.connect_iam()
|
||||
iam_conn = boto.iam.connect_to_region("us-west-1")
|
||||
|
||||
role_result = iam_conn.list_roles()['list_roles_response']['list_roles_result']['roles'][0]
|
||||
role = iam_conn.get_role(role_result.role_name)
|
||||
|
|
@ -446,7 +452,7 @@ def test_iam_roles():
|
|||
instance_profile.path.should.equal("my-path")
|
||||
instance_profile.role_id.should.equal(role.role_id)
|
||||
|
||||
autoscale_conn = boto.connect_autoscale()
|
||||
autoscale_conn = boto.ec2.autoscale.connect_to_region("us-west-1")
|
||||
launch_config = autoscale_conn.get_all_launch_configurations()[0]
|
||||
launch_config.instance_profile_name.should.contain("my-instance-profile")
|
||||
|
||||
|
|
@ -464,13 +470,13 @@ def test_iam_roles():
|
|||
def test_single_instance_with_ebs_volume():
|
||||
|
||||
template_json = json.dumps(single_instance_with_ebs_volume.template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
reservation = ec2_conn.get_all_instances()[0]
|
||||
ec2_instance = reservation.instances[0]
|
||||
|
||||
|
|
@ -489,12 +495,9 @@ def test_single_instance_with_ebs_volume():
|
|||
def test_classic_eip():
|
||||
|
||||
template_json = json.dumps(ec2_classic_eip.template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
ec2_conn = boto.connect_ec2()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack("test_stack", template_body=template_json)
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
eip = ec2_conn.get_all_addresses()[0]
|
||||
|
||||
stack = conn.describe_stacks()[0]
|
||||
|
|
@ -508,12 +511,9 @@ def test_classic_eip():
|
|||
def test_vpc_eip():
|
||||
|
||||
template_json = json.dumps(vpc_eip.template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
ec2_conn = boto.connect_ec2()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack("test_stack", template_body=template_json)
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
eip = ec2_conn.get_all_addresses()[0]
|
||||
|
||||
stack = conn.describe_stacks()[0]
|
||||
|
|
@ -527,12 +527,9 @@ def test_vpc_eip():
|
|||
def test_fn_join():
|
||||
|
||||
template_json = json.dumps(fn_join.template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
ec2_conn = boto.connect_ec2()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack("test_stack", template_body=template_json)
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
eip = ec2_conn.get_all_addresses()[0]
|
||||
|
||||
stack = conn.describe_stacks()[0]
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ def test_parse_stack_resources():
|
|||
stack_id="test_id",
|
||||
name="test_stack",
|
||||
template=dummy_template_json,
|
||||
)
|
||||
region_name='us-west-1')
|
||||
|
||||
stack.resource_map.should.have.length_of(1)
|
||||
list(stack.resource_map.keys())[0].should.equal('Queue')
|
||||
|
|
@ -101,7 +101,8 @@ def test_parse_stack_with_name_type_resource():
|
|||
stack = FakeStack(
|
||||
stack_id="test_id",
|
||||
name="test_stack",
|
||||
template=name_type_template_json)
|
||||
template=name_type_template_json,
|
||||
region_name='us-west-1')
|
||||
|
||||
stack.resource_map.should.have.length_of(1)
|
||||
list(stack.resource_map.keys())[0].should.equal('Queue')
|
||||
|
|
@ -113,7 +114,8 @@ def test_parse_stack_with_outputs():
|
|||
stack = FakeStack(
|
||||
stack_id="test_id",
|
||||
name="test_stack",
|
||||
template=output_type_template_json)
|
||||
template=output_type_template_json,
|
||||
region_name='us-west-1')
|
||||
|
||||
stack.output_map.should.have.length_of(1)
|
||||
list(stack.output_map.keys())[0].should.equal('Output1')
|
||||
|
|
@ -126,7 +128,8 @@ def test_parse_stack_with_get_attribute_outputs():
|
|||
stack = FakeStack(
|
||||
stack_id="test_id",
|
||||
name="test_stack",
|
||||
template=get_attribute_outputs_template_json)
|
||||
template=get_attribute_outputs_template_json,
|
||||
region_name='us-west-1')
|
||||
|
||||
stack.output_map.should.have.length_of(1)
|
||||
list(stack.output_map.keys())[0].should.equal('Output1')
|
||||
|
|
@ -137,4 +140,4 @@ def test_parse_stack_with_get_attribute_outputs():
|
|||
|
||||
def test_parse_stack_with_bad_get_attribute_outputs():
|
||||
FakeStack.when.called_with(
|
||||
"test_id", "test_stack", bad_output_template_json).should.throw(BotoServerError)
|
||||
"test_id", "test_stack", bad_output_template_json, "us-west-1").should.throw(BotoServerError)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
|||
import boto
|
||||
from boto.exception import EC2ResponseError
|
||||
import sure # noqa
|
||||
import tests.backport_assert_raises
|
||||
import tests.backport_assert_raises # noqa
|
||||
from nose.tools import assert_raises
|
||||
|
||||
from moto import mock_ec2
|
||||
|
|
@ -57,3 +57,14 @@ def test_decorater_wrapped_gets_set():
|
|||
Moto decorator's __wrapped__ should get set to the tests function
|
||||
"""
|
||||
test_decorater_wrapped_gets_set.__wrapped__.__name__.should.equal('test_decorater_wrapped_gets_set')
|
||||
|
||||
|
||||
@mock_ec2
|
||||
class Tester(object):
|
||||
def test_the_class(self):
|
||||
conn = boto.connect_ec2()
|
||||
list(conn.get_all_instances()).should.have.length_of(0)
|
||||
|
||||
def test_still_the_same(self):
|
||||
conn = boto.connect_ec2()
|
||||
list(conn.get_all_instances()).should.have.length_of(0)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
from __future__ import unicode_literals
|
||||
# Ensure 'assert_raises' context manager support for Python 2.6
|
||||
import tests.backport_assert_raises
|
||||
import tests.backport_assert_raises # noqa
|
||||
from nose.tools import assert_raises
|
||||
|
||||
import boto
|
||||
import boto.ec2
|
||||
from boto.exception import EC2ResponseError
|
||||
|
||||
import sure # noqa
|
||||
|
|
@ -55,7 +56,7 @@ def test_ami_create_and_delete():
|
|||
@requires_boto_gte("2.14.0")
|
||||
@mock_ec2
|
||||
def test_ami_copy():
|
||||
conn = boto.connect_ec2('the_key', 'the_secret')
|
||||
conn = boto.ec2.connect_to_region("us-west-1")
|
||||
reservation = conn.run_instances('ami-1234abcd')
|
||||
instance = reservation.instances[0]
|
||||
|
||||
|
|
@ -183,6 +184,7 @@ def test_ami_filters():
|
|||
amis_by_name = conn.get_all_images(filters={'name': imageA.name})
|
||||
set([ami.id for ami in amis_by_name]).should.equal(set([imageA.id]))
|
||||
|
||||
|
||||
@mock_ec2
|
||||
def test_ami_filtering_via_tag():
|
||||
conn = boto.connect_vpc('the_key', 'the_secret')
|
||||
|
|
@ -309,4 +311,3 @@ def test_ami_attribute():
|
|||
attribute='launchPermission',
|
||||
operation='remove',
|
||||
user_ids=['user']).should.throw(NotImplementedError)
|
||||
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ def test_modify_attribute_blockDeviceMapping():
|
|||
|
||||
[0] https://github.com/spulec/moto/issues/160
|
||||
"""
|
||||
conn = boto.connect_ec2('the_key', 'the_secret')
|
||||
conn = boto.ec2.connect_to_region("us-east-1")
|
||||
|
||||
reservation = conn.run_instances('ami-1234abcd')
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import tests.backport_assert_raises
|
|||
from nose.tools import assert_raises
|
||||
|
||||
import boto
|
||||
import boto.cloudformation
|
||||
import boto.ec2
|
||||
from boto.exception import EC2ResponseError
|
||||
import sure # noqa
|
||||
|
||||
|
|
@ -151,12 +153,12 @@ def test_elastic_network_interfaces_filtering():
|
|||
def test_elastic_network_interfaces_cloudformation():
|
||||
template = vpc_eni.template
|
||||
template_json = json.dumps(template)
|
||||
conn = boto.connect_cloudformation()
|
||||
conn = boto.cloudformation.connect_to_region("us-west-1")
|
||||
conn.create_stack(
|
||||
"test_stack",
|
||||
template_body=template_json,
|
||||
)
|
||||
ec2_conn = boto.connect_ec2()
|
||||
ec2_conn = boto.ec2.connect_to_region("us-west-1")
|
||||
eni = ec2_conn.get_all_network_interfaces()[0]
|
||||
|
||||
stack = conn.describe_stacks()[0]
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ def test_request_spot_instances_fulfilled():
|
|||
"""
|
||||
Test that moto correctly fullfills a spot instance request
|
||||
"""
|
||||
conn = boto.connect_ec2()
|
||||
conn = boto.ec2.connect_to_region("us-east-1")
|
||||
|
||||
request = conn.request_spot_instances(
|
||||
price=0.5, image_id='ami-abcd1234',
|
||||
|
|
@ -184,7 +184,7 @@ def test_get_all_spot_instance_requests_filtering():
|
|||
|
||||
@mock_ec2
|
||||
def test_request_spot_instances_setting_instance_id():
|
||||
conn = boto.connect_ec2()
|
||||
conn = boto.ec2.connect_to_region("us-east-1")
|
||||
request = conn.request_spot_instances(
|
||||
price=0.5, image_id='ami-abcd1234')
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import itertools
|
|||
|
||||
import boto
|
||||
from boto.exception import EC2ResponseError
|
||||
from boto.ec2.instance import Reservation
|
||||
import sure # noqa
|
||||
|
||||
from moto import mock_ec2
|
||||
|
|
@ -253,3 +254,79 @@ def test_get_all_tags_value_filter():
|
|||
|
||||
tags = conn.get_all_tags(filters={'value': '*value\*\?'})
|
||||
tags.should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_ec2
|
||||
def test_retrieved_instances_must_contain_their_tags():
|
||||
tag_key = 'Tag name'
|
||||
tag_value = 'Tag value'
|
||||
tags_to_be_set = {tag_key: tag_value}
|
||||
|
||||
conn = boto.connect_ec2('the_key', 'the_secret')
|
||||
reservation = conn.run_instances('ami-1234abcd')
|
||||
reservation.should.be.a(Reservation)
|
||||
reservation.instances.should.have.length_of(1)
|
||||
instance = reservation.instances[0]
|
||||
|
||||
reservations = conn.get_all_instances()
|
||||
reservations.should.have.length_of(1)
|
||||
reservations[0].id.should.equal(reservation.id)
|
||||
instances = reservations[0].instances
|
||||
instances.should.have.length_of(1)
|
||||
instances[0].id.should.equal(instance.id)
|
||||
|
||||
conn.create_tags([instance.id], tags_to_be_set)
|
||||
reservations = conn.get_all_instances()
|
||||
instance = reservations[0].instances[0]
|
||||
retrieved_tags = instance.tags
|
||||
|
||||
#Cleanup of instance
|
||||
conn.terminate_instances([instances[0].id])
|
||||
|
||||
#Check whether tag is present with correct value
|
||||
retrieved_tags[tag_key].should.equal(tag_value)
|
||||
|
||||
|
||||
@mock_ec2
|
||||
def test_retrieved_volumes_must_contain_their_tags():
|
||||
tag_key = 'Tag name'
|
||||
tag_value = 'Tag value'
|
||||
tags_to_be_set = {tag_key: tag_value}
|
||||
conn = boto.connect_ec2('the_key', 'the_secret')
|
||||
volume = conn.create_volume(80, "us-east-1a")
|
||||
|
||||
all_volumes = conn.get_all_volumes()
|
||||
volume = all_volumes[0]
|
||||
conn.create_tags([volume.id], tags_to_be_set)
|
||||
|
||||
#Fetch the volume again
|
||||
all_volumes = conn.get_all_volumes()
|
||||
volume = all_volumes[0]
|
||||
retrieved_tags = volume.tags
|
||||
|
||||
volume.delete()
|
||||
|
||||
#Check whether tag is present with correct value
|
||||
retrieved_tags[tag_key].should.equal(tag_value)
|
||||
|
||||
|
||||
@mock_ec2
|
||||
def test_retrieved_snapshots_must_contain_their_tags():
|
||||
tag_key = 'Tag name'
|
||||
tag_value = 'Tag value'
|
||||
tags_to_be_set = {tag_key: tag_value}
|
||||
conn = boto.connect_ec2(aws_access_key_id='the_key', aws_secret_access_key='the_secret')
|
||||
volume = conn.create_volume(80, "eu-west-1a")
|
||||
snapshot = conn.create_snapshot(volume.id)
|
||||
conn.create_tags([snapshot.id], tags_to_be_set)
|
||||
|
||||
#Fetch the snapshot again
|
||||
all_snapshots = conn.get_all_snapshots()
|
||||
snapshot = all_snapshots[0]
|
||||
retrieved_tags = snapshot.tags
|
||||
|
||||
conn.delete_snapshot(snapshot.id)
|
||||
volume.delete()
|
||||
|
||||
#Check whether tag is present with correct value
|
||||
retrieved_tags[tag_key].should.equal(tag_value)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from __future__ import unicode_literals
|
||||
import boto
|
||||
import boto.ec2.elb
|
||||
from boto.ec2.elb import HealthCheck
|
||||
import sure # noqa
|
||||
|
||||
|
|
@ -28,6 +29,21 @@ def test_create_load_balancer():
|
|||
listener2.protocol.should.equal("TCP")
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_create_elb_in_multiple_region():
|
||||
zones = ['us-east-1a', 'us-east-1b']
|
||||
ports = [(80, 8080, 'http'), (443, 8443, 'tcp')]
|
||||
|
||||
west1_conn = boto.ec2.elb.connect_to_region("us-west-1")
|
||||
west1_conn.create_load_balancer('my-lb', zones, ports)
|
||||
|
||||
west2_conn = boto.ec2.elb.connect_to_region("us-west-2")
|
||||
west2_conn.create_load_balancer('my-lb', zones, ports)
|
||||
|
||||
list(west1_conn.get_all_load_balancers()).should.have.length_of(1)
|
||||
list(west2_conn.get_all_load_balancers()).should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_elb
|
||||
def test_add_listener():
|
||||
conn = boto.connect_elb()
|
||||
|
|
|
|||
|
|
@ -29,6 +29,26 @@ def test_publish_to_sqs():
|
|||
message.get_body().should.equal('my message')
|
||||
|
||||
|
||||
@mock_sqs
|
||||
@mock_sns
|
||||
def test_publish_to_sqs_in_different_region():
|
||||
conn = boto.sns.connect_to_region("us-west-1")
|
||||
conn.create_topic("some-topic")
|
||||
topics_json = conn.get_all_topics()
|
||||
topic_arn = topics_json["ListTopicsResponse"]["ListTopicsResult"]["Topics"][0]['TopicArn']
|
||||
|
||||
sqs_conn = boto.sqs.connect_to_region("us-west-2")
|
||||
sqs_conn.create_queue("test-queue")
|
||||
|
||||
conn.subscribe(topic_arn, "sqs", "arn:aws:sqs:us-west-2:123456789012:test-queue")
|
||||
|
||||
conn.publish(topic=topic_arn, message="my message")
|
||||
|
||||
queue = sqs_conn.get_queue("test-queue")
|
||||
message = queue.read(1)
|
||||
message.get_body().should.equal('my message')
|
||||
|
||||
|
||||
@freeze_time("2013-01-01")
|
||||
@mock_sns
|
||||
def test_publish_to_http():
|
||||
|
|
|
|||
|
|
@ -27,6 +27,18 @@ def test_create_and_delete_topic():
|
|||
topics.should.have.length_of(0)
|
||||
|
||||
|
||||
@mock_sns
|
||||
def test_create_topic_in_multiple_regions():
|
||||
west1_conn = boto.sns.connect_to_region("us-west-1")
|
||||
west1_conn.create_topic("some-topic")
|
||||
|
||||
west2_conn = boto.sns.connect_to_region("us-west-2")
|
||||
west2_conn.create_topic("some-topic")
|
||||
|
||||
list(west1_conn.get_all_topics()["ListTopicsResponse"]["ListTopicsResult"]["Topics"]).should.have.length_of(1)
|
||||
list(west2_conn.get_all_topics()["ListTopicsResponse"]["ListTopicsResult"]["Topics"]).should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_sns
|
||||
def test_topic_attributes():
|
||||
conn = boto.connect_sns()
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import time
|
|||
from moto import mock_sqs
|
||||
from tests.helpers import requires_boto_gte
|
||||
|
||||
|
||||
@mock_sqs
|
||||
def test_create_queue():
|
||||
conn = boto.connect_sqs('the_key', 'the_secret')
|
||||
|
|
@ -21,6 +22,18 @@ def test_create_queue():
|
|||
all_queues[0].get_timeout().should.equal(60)
|
||||
|
||||
|
||||
@mock_sqs
|
||||
def test_create_queues_in_multiple_region():
|
||||
west1_conn = boto.sqs.connect_to_region("us-west-1")
|
||||
west1_conn.create_queue("test-queue")
|
||||
|
||||
west2_conn = boto.sqs.connect_to_region("us-west-2")
|
||||
west2_conn.create_queue("test-queue")
|
||||
|
||||
list(west1_conn.get_all_queues()).should.have.length_of(1)
|
||||
list(west2_conn.get_all_queues()).should.have.length_of(1)
|
||||
|
||||
|
||||
@mock_sqs
|
||||
def test_get_queue():
|
||||
conn = boto.connect_sqs('the_key', 'the_secret')
|
||||
|
|
@ -113,13 +126,13 @@ def test_send_message_with_attributes():
|
|||
conn = boto.connect_sqs('the_key', 'the_secret')
|
||||
queue = conn.create_queue("test-queue", visibility_timeout=60)
|
||||
queue.set_message_class(RawMessage)
|
||||
|
||||
|
||||
body = 'this is a test message'
|
||||
message = queue.new_message(body)
|
||||
message_attributes = {
|
||||
'test.attribute_name' : {'data_type' : 'String', 'string_value' : 'attribute value'},
|
||||
'test.binary_attribute' : {'data_type' : 'Binary', 'binary_value' : 'binary value'},
|
||||
'test.number_attribute' : {'data_type' : 'Number', 'string_value' : 'string value'}
|
||||
'test.attribute_name': {'data_type': 'String', 'string_value': 'attribute value'},
|
||||
'test.binary_attribute': {'data_type': 'Binary', 'binary_value': 'binary value'},
|
||||
'test.number_attribute': {'data_type': 'Number', 'string_value': 'string value'}
|
||||
}
|
||||
message.message_attributes = message_attributes
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue