Use known ImageID in internal tests (#3555)

This commit is contained in:
Bert Blommers 2021-01-13 09:02:11 +00:00 committed by GitHub
commit 77dd35e3b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 258 additions and 260 deletions

View file

@ -13,6 +13,7 @@ import sure # noqa
from moto import mock_ec2_deprecated, mock_ec2
from moto.ec2.models import AMIS, OWNER_ID
from moto.core import ACCOUNT_ID
from tests import EXAMPLE_AMI_ID
from tests.helpers import requires_boto_gte
@ -24,7 +25,7 @@ def test_ami_create_and_delete():
conn.get_all_volumes().should.have.length_of(0)
conn.get_all_snapshots().should.have.length_of(initial_ami_count)
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as ex:
@ -103,7 +104,7 @@ def test_ami_copy():
conn.get_all_volumes().should.have.length_of(0)
conn.get_all_snapshots().should.have.length_of(initial_ami_count)
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
source_image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
@ -203,7 +204,7 @@ def test_copy_image_changes_owner_id():
@mock_ec2_deprecated
def test_ami_tagging():
conn = boto.connect_vpc("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
conn.create_image(instance.id, "test-ami", "this is a test ami")
image = conn.get_all_images()[0]
@ -243,7 +244,7 @@ def test_ami_create_from_missing_instance():
@mock_ec2_deprecated
def test_ami_pulls_attributes_from_instance():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.modify_attribute("kernel", "test-kernel")
@ -256,7 +257,7 @@ def test_ami_pulls_attributes_from_instance():
def test_ami_uses_account_id_if_valid_access_key_is_supplied():
access_key = "AKIAXXXXXXXXXXXXXXXX"
conn = boto.connect_ec2(access_key, "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.modify_attribute("kernel", "test-kernel")
@ -269,7 +270,7 @@ def test_ami_uses_account_id_if_valid_access_key_is_supplied():
def test_ami_filters():
conn = boto.connect_ec2("the_key", "the_secret")
reservationA = conn.run_instances("ami-1234abcd")
reservationA = conn.run_instances(EXAMPLE_AMI_ID)
instanceA = reservationA.instances[0]
instanceA.modify_attribute("architecture", "i386")
instanceA.modify_attribute("kernel", "k-1234abcd")
@ -278,7 +279,7 @@ def test_ami_filters():
imageA_id = conn.create_image(instanceA.id, "test-ami-A", "this is a test ami")
imageA = conn.get_image(imageA_id)
reservationB = conn.run_instances("ami-abcd1234")
reservationB = conn.run_instances(EXAMPLE_AMI_ID)
instanceB = reservationB.instances[0]
instanceB.modify_attribute("architecture", "x86_64")
instanceB.modify_attribute("kernel", "k-abcd1234")
@ -330,13 +331,13 @@ def test_ami_filters():
def test_ami_filtering_via_tag():
conn = boto.connect_vpc("the_key", "the_secret")
reservationA = conn.run_instances("ami-1234abcd")
reservationA = conn.run_instances(EXAMPLE_AMI_ID)
instanceA = reservationA.instances[0]
imageA_id = conn.create_image(instanceA.id, "test-ami-A", "this is a test ami")
imageA = conn.get_image(imageA_id)
imageA.add_tag("a key", "some value")
reservationB = conn.run_instances("ami-abcd1234")
reservationB = conn.run_instances(EXAMPLE_AMI_ID)
instanceB = reservationB.instances[0]
imageB_id = conn.create_image(instanceB.id, "test-ami-B", "this is a test ami")
imageB = conn.get_image(imageB_id)
@ -374,7 +375,7 @@ def test_getting_malformed_ami():
@mock_ec2_deprecated
def test_ami_attribute_group_permissions():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
image = conn.get_image(image_id)
@ -437,7 +438,7 @@ def test_ami_attribute_group_permissions():
@mock_ec2_deprecated
def test_ami_attribute_user_permissions():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
image = conn.get_image(image_id)
@ -513,7 +514,7 @@ def test_ami_attribute_user_permissions():
def test_ami_describe_executable_users():
conn = boto3.client("ec2", region_name="us-east-1")
ec2 = boto3.resource("ec2", "us-east-1")
ec2.create_instances(ImageId="", MinCount=1, MaxCount=1)
ec2.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
response = conn.describe_instances(
Filters=[{"Name": "instance-state-name", "Values": ["running"]}]
)
@ -546,7 +547,7 @@ def test_ami_describe_executable_users():
def test_ami_describe_executable_users_negative():
conn = boto3.client("ec2", region_name="us-east-1")
ec2 = boto3.resource("ec2", "us-east-1")
ec2.create_instances(ImageId="", MinCount=1, MaxCount=1)
ec2.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
response = conn.describe_instances(
Filters=[{"Name": "instance-state-name", "Values": ["running"]}]
)
@ -580,7 +581,7 @@ def test_ami_describe_executable_users_negative():
def test_ami_describe_executable_users_and_filter():
conn = boto3.client("ec2", region_name="us-east-1")
ec2 = boto3.resource("ec2", "us-east-1")
ec2.create_instances(ImageId="", MinCount=1, MaxCount=1)
ec2.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
response = conn.describe_instances(
Filters=[{"Name": "instance-state-name", "Values": ["running"]}]
)
@ -621,7 +622,7 @@ def test_ami_attribute_user_and_group_permissions():
via user-specific and group-specific tests above.
"""
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
image = conn.get_image(image_id)
@ -672,7 +673,7 @@ def test_ami_attribute_user_and_group_permissions():
@mock_ec2_deprecated
def test_ami_attribute_error_cases():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
image = conn.get_image(image_id)
@ -799,7 +800,7 @@ def test_ami_filter_wildcard():
ec2_client = boto3.client("ec2", region_name="us-west-1")
instance = ec2_resource.create_instances(
ImageId="ami-1234abcd", MinCount=1, MaxCount=1
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1
)[0]
instance.create_image(Name="test-image")
@ -840,7 +841,7 @@ def test_ami_filter_by_self():
# Create a new image
instance = ec2_resource.create_instances(
ImageId="ami-1234abcd", MinCount=1, MaxCount=1
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1
)[0]
instance.create_image(Name="test-image")

View file

@ -1,5 +1,6 @@
from moto import mock_cloudformation_deprecated, mock_ec2_deprecated
from moto import mock_cloudformation, mock_ec2
from tests import EXAMPLE_AMI_ID
from tests.test_cloudformation.fixtures import vpc_eni
import boto
import boto.ec2
@ -46,7 +47,7 @@ def test_volume_size_through_cloudformation():
"testInstance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-d3adb33f",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "dummy",
"InstanceType": "t2.micro",
"BlockDeviceMappings": [

View file

@ -12,6 +12,7 @@ from moto import mock_ec2, mock_ec2_deprecated
from moto.ec2 import ec2_backends
from moto.ec2.models import OWNER_ID
from moto.kms import mock_kms
from tests import EXAMPLE_AMI_ID
@mock_ec2_deprecated
@ -54,7 +55,7 @@ def test_create_and_delete_volume():
@mock_ec2_deprecated
def test_delete_attached_volume():
conn = boto.ec2.connect_to_region("us-east-1")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
# create an instance
instance = reservation.instances[0]
# create a volume
@ -143,7 +144,7 @@ def test_filter_volume_by_id():
def test_volume_filters():
conn = boto.ec2.connect_to_region("us-east-1")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.update()
@ -250,7 +251,7 @@ def test_volume_filters():
@mock_ec2_deprecated
def test_volume_attach_and_detach():
conn = boto.ec2.connect_to_region("us-east-1")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
volume = conn.create_volume(80, "us-east-1a")
@ -780,7 +781,7 @@ def test_modify_attribute_blockDeviceMapping():
"""
conn = boto.ec2.connect_to_region("us-east-1")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]

View file

@ -11,6 +11,7 @@ import six
import sure # noqa
from moto import mock_ec2, mock_ec2_deprecated
from tests import EXAMPLE_AMI_ID
import logging
@ -95,7 +96,7 @@ def test_eip_associate_classic():
"""Associate/Disassociate EIP to classic instance"""
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
eip = conn.allocate_address()
@ -146,7 +147,7 @@ def test_eip_associate_vpc():
"""Associate/Disassociate EIP to VPC instance"""
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
eip = conn.allocate_address(domain="vpc")
@ -194,7 +195,7 @@ def test_eip_boto3_vpc_association():
instance = service.create_instances(
**{
"InstanceType": "t2.micro",
"ImageId": "ami-test",
"ImageId": EXAMPLE_AMI_ID,
"MinCount": 1,
"MaxCount": 1,
"SubnetId": subnet_res["Subnet"]["SubnetId"],
@ -265,7 +266,7 @@ def test_eip_reassociate():
"""reassociate EIP"""
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", min_count=2)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=2)
instance1, instance2 = reservation.instances
eip = conn.allocate_address()
@ -330,7 +331,7 @@ def test_eip_associate_invalid_args():
"""Associate EIP, invalid args """
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
eip = conn.allocate_address()
@ -457,7 +458,7 @@ def test_eip_filters():
instance = service.create_instances(
**{
"InstanceType": "t2.micro",
"ImageId": "ami-test",
"ImageId": EXAMPLE_AMI_ID,
"MinCount": 1,
"MaxCount": 1,
"SubnetId": subnet_res["Subnet"]["SubnetId"],

View file

@ -9,12 +9,13 @@ from boto.exception import EC2ResponseError
import sure # noqa
from moto import mock_ec2_deprecated, mock_ec2
from tests import EXAMPLE_AMI_ID
@mock_ec2_deprecated
def test_console_output():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance_id = reservation.instances[0].id
output = conn.get_console_output(instance_id)
output.output.should_not.equal(None)
@ -34,7 +35,7 @@ def test_console_output_without_instance():
@mock_ec2
def test_console_output_boto3():
conn = boto3.resource("ec2", "us-east-1")
instances = conn.create_instances(ImageId="ami-1234abcd", MinCount=1, MaxCount=1)
instances = conn.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
output = instances[0].console_output()
output.get("Output").should_not.equal(None)

View file

@ -10,12 +10,14 @@ from botocore.exceptions import ClientError
import sure # noqa
from moto import mock_ec2, mock_iam, mock_cloudformation
from tests import EXAMPLE_AMI_ID
def quick_instance_creation():
image_id = "ami-1234abcd"
conn_ec2 = boto3.resource("ec2", "us-east-1")
test_instance = conn_ec2.create_instances(ImageId=image_id, MinCount=1, MaxCount=1)
test_instance = conn_ec2.create_instances(
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1
)
# We only need instance id for this tests
return test_instance[0].id
@ -323,7 +325,7 @@ def test_cloudformation():
"Properties": {
"IamInstanceProfile": {"Ref": "InstanceProfile"},
"KeyName": "mykey1",
"ImageId": "ami-7a11e213",
"ImageId": EXAMPLE_AMI_ID,
},
},
},

View file

@ -17,6 +17,7 @@ from freezegun import freeze_time
import sure # noqa
from moto import mock_ec2_deprecated, mock_ec2
from tests import EXAMPLE_AMI_ID
from tests.helpers import requires_boto_gte
@ -34,13 +35,13 @@ def add_servers(ami_id, count):
@mock_ec2_deprecated
def test_add_servers():
add_servers("ami-1234abcd", 2)
add_servers(EXAMPLE_AMI_ID, 2)
conn = boto.connect_ec2()
reservations = conn.get_all_instances()
assert len(reservations) == 2
instance1 = reservations[0].instances[0]
assert instance1.image_id == "ami-1234abcd"
assert instance1.image_id == EXAMPLE_AMI_ID
############################################
@ -52,14 +53,14 @@ def test_instance_launch_and_terminate():
conn = boto.ec2.connect_to_region("us-east-1")
with pytest.raises(EC2ResponseError) as ex:
reservation = conn.run_instances("ami-1234abcd", dry_run=True)
reservation = conn.run_instances(EXAMPLE_AMI_ID, dry_run=True)
ex.value.error_code.should.equal("DryRunOperation")
ex.value.status.should.equal(400)
ex.value.message.should.equal(
"An error occurred (DryRunOperation) when calling the RunInstance operation: Request would have succeeded, but DryRun flag is set"
)
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
reservation.should.be.a(Reservation)
reservation.instances.should.have.length_of(1)
instance = reservation.instances[0]
@ -107,7 +108,7 @@ def test_instance_terminate_discard_volumes():
ec2_resource = boto3.resource("ec2", "us-west-1")
result = ec2_resource.create_instances(
ImageId="ami-d3adb33f",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
BlockDeviceMappings=[
@ -135,7 +136,7 @@ def test_instance_terminate_keep_volumes_explicit():
ec2_resource = boto3.resource("ec2", "us-west-1")
result = ec2_resource.create_instances(
ImageId="ami-d3adb33f",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
BlockDeviceMappings=[
@ -162,7 +163,7 @@ def test_instance_terminate_keep_volumes_implicit():
ec2_resource = boto3.resource("ec2", "us-west-1")
result = ec2_resource.create_instances(
ImageId="ami-d3adb33f",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
BlockDeviceMappings=[{"DeviceName": "/dev/sda1", "Ebs": {"VolumeSize": 50}}],
@ -185,7 +186,7 @@ def test_instance_terminate_keep_volumes_implicit():
def test_instance_terminate_detach_volumes():
ec2_resource = boto3.resource("ec2", "us-west-1")
result = ec2_resource.create_instances(
ImageId="ami-d3adb33f",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
BlockDeviceMappings=[
@ -208,7 +209,7 @@ def test_instance_terminate_detach_volumes():
def test_instance_detach_volume_wrong_path():
ec2_resource = boto3.resource("ec2", "us-west-1")
result = ec2_resource.create_instances(
ImageId="ami-d3adb33f",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
BlockDeviceMappings=[{"DeviceName": "/dev/sda1", "Ebs": {"VolumeSize": 50}},],
@ -237,7 +238,7 @@ def test_terminate_empty_instances():
@mock_ec2_deprecated
def test_instance_attach_volume():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
vol1 = conn.create_volume(size=36, zone=conn.region.name)
@ -270,7 +271,7 @@ def test_instance_attach_volume():
@mock_ec2_deprecated
def test_get_instances_by_id():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=2)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=2)
instance1, instance2 = reservation.instances
reservations = conn.get_all_instances(instance_ids=[instance1.id])
@ -296,11 +297,10 @@ def test_get_instances_by_id():
@mock_ec2
def test_get_paginated_instances():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
conn = boto3.resource("ec2", "us-east-1")
for i in range(100):
conn.create_instances(ImageId=image_id, MinCount=1, MaxCount=1)
conn.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
resp = client.describe_instances(MaxResults=50)
reservations = resp["Reservations"]
reservations.should.have.length_of(50)
@ -316,7 +316,7 @@ def test_get_paginated_instances():
def test_create_with_tags():
ec2 = boto3.client("ec2", region_name="us-west-2")
instances = ec2.run_instances(
ImageId="ami-123",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
InstanceType="t2.micro",
@ -341,7 +341,7 @@ def test_create_with_tags():
@mock_ec2_deprecated
def test_get_instances_filtering_by_state():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
conn.terminate_instances([instance1.id])
@ -377,7 +377,7 @@ def test_get_instances_filtering_by_state():
@mock_ec2_deprecated
def test_get_instances_filtering_by_instance_id():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
reservations = conn.get_all_instances(filters={"instance-id": instance1.id})
@ -398,11 +398,11 @@ def test_get_instances_filtering_by_instance_id():
@mock_ec2_deprecated
def test_get_instances_filtering_by_instance_type():
conn = boto.connect_ec2()
reservation1 = conn.run_instances("ami-1234abcd", instance_type="m1.small")
reservation1 = conn.run_instances(EXAMPLE_AMI_ID, instance_type="m1.small")
instance1 = reservation1.instances[0]
reservation2 = conn.run_instances("ami-1234abcd", instance_type="m1.small")
reservation2 = conn.run_instances(EXAMPLE_AMI_ID, instance_type="m1.small")
instance2 = reservation2.instances[0]
reservation3 = conn.run_instances("ami-1234abcd", instance_type="t1.micro")
reservation3 = conn.run_instances(EXAMPLE_AMI_ID, instance_type="t1.micro")
instance3 = reservation3.instances[0]
reservations = conn.get_all_instances(filters={"instance-type": "m1.small"})
@ -441,7 +441,7 @@ def test_get_instances_filtering_by_instance_type():
@mock_ec2_deprecated
def test_get_instances_filtering_by_reason_code():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
instance1.stop()
instance2.terminate()
@ -464,7 +464,7 @@ def test_get_instances_filtering_by_reason_code():
@mock_ec2_deprecated
def test_get_instances_filtering_by_source_dest_check():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=2)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=2)
instance1, instance2 = reservation.instances
conn.modify_instance_attribute(
instance1.id, attribute="sourceDestCheck", value=False
@ -489,12 +489,12 @@ def test_get_instances_filtering_by_vpc_id():
conn = boto.connect_vpc("the_key", "the_secret")
vpc1 = conn.create_vpc("10.0.0.0/16")
subnet1 = conn.create_subnet(vpc1.id, "10.0.0.0/27")
reservation1 = conn.run_instances("ami-1234abcd", min_count=1, subnet_id=subnet1.id)
reservation1 = conn.run_instances(EXAMPLE_AMI_ID, min_count=1, subnet_id=subnet1.id)
instance1 = reservation1.instances[0]
vpc2 = conn.create_vpc("10.1.0.0/16")
subnet2 = conn.create_subnet(vpc2.id, "10.1.0.0/27")
reservation2 = conn.run_instances("ami-1234abcd", min_count=1, subnet_id=subnet2.id)
reservation2 = conn.run_instances(EXAMPLE_AMI_ID, min_count=1, subnet_id=subnet2.id)
instance2 = reservation2.instances[0]
reservations1 = conn.get_all_instances(filters={"vpc-id": vpc1.id})
@ -515,7 +515,7 @@ def test_get_instances_filtering_by_vpc_id():
@mock_ec2_deprecated
def test_get_instances_filtering_by_architecture():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=1)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=1)
instance = reservation.instances
reservations = conn.get_all_instances(filters={"architecture": "x86_64"})
@ -525,23 +525,21 @@ def test_get_instances_filtering_by_architecture():
@mock_ec2
def test_get_instances_filtering_by_image_id():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
conn = boto3.resource("ec2", "us-east-1")
conn.create_instances(ImageId=image_id, MinCount=1, MaxCount=1)
conn.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
reservations = client.describe_instances(
Filters=[{"Name": "image-id", "Values": [image_id]}]
Filters=[{"Name": "image-id", "Values": [EXAMPLE_AMI_ID]}]
)["Reservations"]
reservations[0]["Instances"].should.have.length_of(1)
@mock_ec2
def test_get_instances_filtering_by_account_id():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
conn = boto3.resource("ec2", "us-east-1")
conn.create_instances(ImageId=image_id, MinCount=1, MaxCount=1)
conn.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
reservations = client.describe_instances(
Filters=[{"Name": "owner-id", "Values": ["123456789012"]}]
@ -552,11 +550,10 @@ def test_get_instances_filtering_by_account_id():
@mock_ec2
def test_get_instances_filtering_by_private_dns():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
conn = boto3.resource("ec2", "us-east-1")
conn.create_instances(
ImageId=image_id, MinCount=1, MaxCount=1, PrivateIpAddress="10.0.0.1"
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, PrivateIpAddress="10.0.0.1"
)
reservations = client.describe_instances(
Filters=[{"Name": "private-dns-name", "Values": ["ip-10-0-0-1.ec2.internal"]}]
@ -566,11 +563,10 @@ def test_get_instances_filtering_by_private_dns():
@mock_ec2
def test_get_instances_filtering_by_ni_private_dns():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-west-2")
conn = boto3.resource("ec2", "us-west-2")
conn.create_instances(
ImageId=image_id, MinCount=1, MaxCount=1, PrivateIpAddress="10.0.0.1"
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, PrivateIpAddress="10.0.0.1"
)
reservations = client.describe_instances(
Filters=[
@ -585,11 +581,10 @@ def test_get_instances_filtering_by_ni_private_dns():
@mock_ec2
def test_get_instances_filtering_by_instance_group_name():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
client.create_security_group(Description="test", GroupName="test_sg")
client.run_instances(
ImageId=image_id, MinCount=1, MaxCount=1, SecurityGroups=["test_sg"]
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, SecurityGroups=["test_sg"]
)
reservations = client.describe_instances(
Filters=[{"Name": "instance.group-name", "Values": ["test_sg"]}]
@ -599,12 +594,11 @@ def test_get_instances_filtering_by_instance_group_name():
@mock_ec2
def test_get_instances_filtering_by_instance_group_id():
image_id = "ami-1234abcd"
client = boto3.client("ec2", region_name="us-east-1")
create_sg = client.create_security_group(Description="test", GroupName="test_sg")
group_id = create_sg["GroupId"]
client.run_instances(
ImageId=image_id, MinCount=1, MaxCount=1, SecurityGroups=["test_sg"]
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, SecurityGroups=["test_sg"]
)
reservations = client.describe_instances(
Filters=[{"Name": "instance.group-id", "Values": [group_id]}]
@ -615,7 +609,7 @@ def test_get_instances_filtering_by_instance_group_id():
@mock_ec2_deprecated
def test_get_instances_filtering_by_tag():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
instance1.add_tag("tag1", "value1")
instance1.add_tag("tag2", "value2")
@ -662,7 +656,7 @@ def test_get_instances_filtering_by_tag():
@mock_ec2_deprecated
def test_get_instances_filtering_by_tag_value():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
instance1.add_tag("tag1", "value1")
instance1.add_tag("tag2", "value2")
@ -702,7 +696,7 @@ def test_get_instances_filtering_by_tag_value():
@mock_ec2_deprecated
def test_get_instances_filtering_by_tag_name():
conn = boto.connect_ec2()
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
instance1.add_tag("tag1")
instance1.add_tag("tag2")
@ -734,7 +728,7 @@ def test_get_instances_filtering_by_tag_name():
@mock_ec2_deprecated
def test_instance_start_and_stop():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", min_count=2)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=2)
instances = reservation.instances
instances.should.have.length_of(2)
@ -768,7 +762,7 @@ def test_instance_start_and_stop():
@mock_ec2_deprecated
def test_instance_reboot():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as ex:
@ -786,7 +780,7 @@ def test_instance_reboot():
@mock_ec2_deprecated
def test_instance_attribute_instance_type():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as ex:
@ -807,7 +801,7 @@ def test_instance_attribute_instance_type():
@mock_ec2_deprecated
def test_modify_instance_attribute_security_groups():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
sg_id = conn.create_security_group(
@ -837,7 +831,7 @@ def test_modify_instance_attribute_security_groups():
@mock_ec2_deprecated
def test_instance_attribute_user_data():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as ex:
@ -858,7 +852,7 @@ def test_instance_attribute_user_data():
@mock_ec2_deprecated
def test_instance_attribute_source_dest_check():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
# Default value is true
@ -902,7 +896,7 @@ def test_instance_attribute_source_dest_check():
def test_user_data_with_run_instance():
user_data = b"some user data"
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", user_data=user_data)
reservation = conn.run_instances(EXAMPLE_AMI_ID, user_data=user_data)
instance = reservation.instances[0]
instance_attribute = instance.get_attribute("userData")
@ -926,7 +920,7 @@ def test_run_instance_with_security_group_name():
group = conn.create_security_group("group1", "some description")
reservation = conn.run_instances("ami-1234abcd", security_groups=["group1"])
reservation = conn.run_instances(EXAMPLE_AMI_ID, security_groups=["group1"])
instance = reservation.instances[0]
instance.groups[0].id.should.equal(group.id)
@ -937,7 +931,7 @@ def test_run_instance_with_security_group_name():
def test_run_instance_with_security_group_id():
conn = boto.connect_ec2("the_key", "the_secret")
group = conn.create_security_group("group1", "some description")
reservation = conn.run_instances("ami-1234abcd", security_group_ids=[group.id])
reservation = conn.run_instances(EXAMPLE_AMI_ID, security_group_ids=[group.id])
instance = reservation.instances[0]
instance.groups[0].id.should.equal(group.id)
@ -947,7 +941,7 @@ def test_run_instance_with_security_group_id():
@mock_ec2_deprecated
def test_run_instance_with_instance_type():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", instance_type="t1.micro")
reservation = conn.run_instances(EXAMPLE_AMI_ID, instance_type="t1.micro")
instance = reservation.instances[0]
instance.instance_type.should.equal("t1.micro")
@ -956,7 +950,7 @@ def test_run_instance_with_instance_type():
@mock_ec2_deprecated
def test_run_instance_with_default_placement():
conn = boto.ec2.connect_to_region("us-east-1")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.placement.should.equal("us-east-1a")
@ -965,7 +959,7 @@ def test_run_instance_with_default_placement():
@mock_ec2_deprecated
def test_run_instance_with_placement():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", placement="us-east-1b")
reservation = conn.run_instances(EXAMPLE_AMI_ID, placement="us-east-1b")
instance = reservation.instances[0]
instance.placement.should.equal("us-east-1b")
@ -997,7 +991,7 @@ def test_run_instance_with_subnet_boto3():
subnet_id = resp["Subnet"]["SubnetId"]
resp = client.run_instances(
ImageId="ami-1234abcd", MaxCount=1, MinCount=1, SubnetId=subnet_id
ImageId=EXAMPLE_AMI_ID, MaxCount=1, MinCount=1, SubnetId=subnet_id
)
instance = resp["Instances"][0]
instance["SubnetId"].should.equal(subnet_id)
@ -1025,7 +1019,7 @@ def test_run_instance_with_specified_private_ipv4():
subnet_id = resp["Subnet"]["SubnetId"]
resp = client.run_instances(
ImageId="ami-1234abcd",
ImageId=EXAMPLE_AMI_ID,
MaxCount=1,
MinCount=1,
SubnetId=subnet_id,
@ -1058,7 +1052,7 @@ def test_run_instance_mapped_public_ipv4():
)
resp = client.run_instances(
ImageId="ami-1234abcd", MaxCount=1, MinCount=1, SubnetId=subnet_id
ImageId=EXAMPLE_AMI_ID, MaxCount=1, MinCount=1, SubnetId=subnet_id
)
instance = resp["Instances"][0]
instance.should.contain("PublicDnsName")
@ -1081,7 +1075,7 @@ def test_run_instance_with_nic_autocreated():
private_ip = "10.0.0.1"
reservation = conn.run_instances(
"ami-1234abcd",
EXAMPLE_AMI_ID,
subnet_id=subnet.id,
security_groups=[security_group1.name],
security_group_ids=[security_group2.id],
@ -1141,7 +1135,7 @@ def test_run_instance_with_nic_preexisting():
# end Boto objects
reservation = conn.run_instances(
"ami-1234abcd",
EXAMPLE_AMI_ID,
network_interfaces=interfaces,
security_group_ids=[security_group2.id],
)
@ -1180,7 +1174,7 @@ def test_instance_with_nic_attach_detach():
)
reservation = conn.run_instances(
"ami-1234abcd", security_group_ids=[security_group1.id]
EXAMPLE_AMI_ID, security_group_ids=[security_group1.id]
)
instance = reservation.instances[0]
@ -1249,7 +1243,7 @@ def test_instance_with_nic_attach_detach():
@mock_ec2_deprecated
def test_ec2_classic_has_public_ip_address():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", key_name="keypair_name")
reservation = conn.run_instances(EXAMPLE_AMI_ID, key_name="keypair_name")
instance = reservation.instances[0]
instance.ip_address.should_not.equal(None)
instance.public_dns_name.should.contain(instance.ip_address.replace(".", "-"))
@ -1262,7 +1256,7 @@ def test_ec2_classic_has_public_ip_address():
@mock_ec2_deprecated
def test_run_instance_with_keypair():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", key_name="keypair_name")
reservation = conn.run_instances(EXAMPLE_AMI_ID, key_name="keypair_name")
instance = reservation.instances[0]
instance.key_name.should.equal("keypair_name")
@ -1275,7 +1269,7 @@ def test_run_instance_with_block_device_mappings():
kwargs = {
"MinCount": 1,
"MaxCount": 1,
"ImageId": "ami-d3adb33f",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "the_key",
"InstanceType": "t1.micro",
"BlockDeviceMappings": [{"DeviceName": "/dev/sda2", "Ebs": {"VolumeSize": 50}}],
@ -1299,7 +1293,7 @@ def test_run_instance_with_block_device_mappings_missing_ebs():
kwargs = {
"MinCount": 1,
"MaxCount": 1,
"ImageId": "ami-d3adb33f",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "the_key",
"InstanceType": "t1.micro",
"BlockDeviceMappings": [{"DeviceName": "/dev/sda2"}],
@ -1321,7 +1315,7 @@ def test_run_instance_with_block_device_mappings_missing_size():
kwargs = {
"MinCount": 1,
"MaxCount": 1,
"ImageId": "ami-d3adb33f",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "the_key",
"InstanceType": "t1.micro",
"BlockDeviceMappings": [
@ -1352,7 +1346,7 @@ def test_run_instance_with_block_device_mappings_from_snapshot():
kwargs = {
"MinCount": 1,
"MaxCount": 1,
"ImageId": "ami-d3adb33f",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "the_key",
"InstanceType": "t1.micro",
"BlockDeviceMappings": [
@ -1383,7 +1377,7 @@ def test_describe_instance_status_no_instances():
@mock_ec2_deprecated
def test_describe_instance_status_with_instances():
conn = boto.connect_ec2("the_key", "the_secret")
conn.run_instances("ami-1234abcd", key_name="keypair_name")
conn.run_instances(EXAMPLE_AMI_ID, key_name="keypair_name")
all_status = conn.get_all_instance_status()
len(all_status).should.equal(1)
@ -1396,11 +1390,11 @@ def test_describe_instance_status_with_instance_filter_deprecated():
conn = boto.connect_ec2("the_key", "the_secret")
# We want to filter based on this one
reservation = conn.run_instances("ami-1234abcd", key_name="keypair_name")
reservation = conn.run_instances(EXAMPLE_AMI_ID, key_name="keypair_name")
instance = reservation.instances[0]
# This is just to setup the test
conn.run_instances("ami-1234abcd", key_name="keypair_name")
conn.run_instances(EXAMPLE_AMI_ID, key_name="keypair_name")
all_status = conn.get_all_instance_status(instance_ids=[instance.id])
len(all_status).should.equal(1)
@ -1419,7 +1413,7 @@ def test_describe_instance_credit_specifications():
conn = boto3.client("ec2", region_name="us-west-1")
# We want to filter based on this one
reservation = conn.run_instances(ImageId="ami-1234abcd", MinCount=1, MaxCount=1)
reservation = conn.run_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
result = conn.describe_instance_credit_specifications(
InstanceIds=[reservation["Instances"][0]["InstanceId"]]
)
@ -1434,7 +1428,7 @@ def test_describe_instance_status_with_instance_filter():
conn = boto3.client("ec2", region_name="us-west-1")
# We want to filter based on this one
reservation = conn.run_instances(ImageId="ami-1234abcd", MinCount=3, MaxCount=3)
reservation = conn.run_instances(ImageId=EXAMPLE_AMI_ID, MinCount=3, MaxCount=3)
instance1 = reservation["Instances"][0]
instance2 = reservation["Instances"][1]
instance3 = reservation["Instances"][2]
@ -1502,7 +1496,7 @@ def test_describe_instance_status_with_instance_filter():
@mock_ec2_deprecated
def test_describe_instance_status_with_non_running_instances():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd", min_count=3)
reservation = conn.run_instances(EXAMPLE_AMI_ID, min_count=3)
instance1, instance2, instance3 = reservation.instances
instance1.stop()
instance2.terminate()
@ -1529,7 +1523,7 @@ def test_describe_instance_status_with_non_running_instances():
def test_get_instance_by_security_group():
conn = boto.connect_ec2("the_key", "the_secret")
conn.run_instances("ami-1234abcd")
conn.run_instances(EXAMPLE_AMI_ID)
instance = conn.get_only_instances()[0]
security_group = conn.create_security_group("test", "test")
@ -1555,7 +1549,7 @@ def test_get_instance_by_security_group():
@mock_ec2
def test_modify_delete_on_termination():
ec2_client = boto3.resource("ec2", region_name="us-west-1")
result = ec2_client.create_instances(ImageId="ami-12345678", MinCount=1, MaxCount=1)
result = ec2_client.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1)
instance = result[0]
instance.load()
instance.block_device_mappings[0]["Ebs"]["DeleteOnTermination"].should.be(True)
@ -1573,7 +1567,7 @@ def test_create_instance_ebs_optimized():
ec2_resource = boto3.resource("ec2", region_name="eu-west-1")
instance = ec2_resource.create_instances(
ImageId="ami-12345678", MaxCount=1, MinCount=1, EbsOptimized=True
ImageId=EXAMPLE_AMI_ID, MaxCount=1, MinCount=1, EbsOptimized=True
)[0]
instance.load()
instance.ebs_optimized.should.be(True)
@ -1583,7 +1577,7 @@ def test_create_instance_ebs_optimized():
instance.ebs_optimized.should.be(False)
instance = ec2_resource.create_instances(
ImageId="ami-12345678", MaxCount=1, MinCount=1,
ImageId=EXAMPLE_AMI_ID, MaxCount=1, MinCount=1,
)[0]
instance.load()
instance.ebs_optimized.should.be(False)
@ -1594,7 +1588,7 @@ def test_run_multiple_instances_in_same_command():
instance_count = 4
client = boto3.client("ec2", region_name="us-east-1")
client.run_instances(
ImageId="ami-1234abcd", MinCount=instance_count, MaxCount=instance_count
ImageId=EXAMPLE_AMI_ID, MinCount=instance_count, MaxCount=instance_count
)
reservations = client.describe_instances()["Reservations"]
@ -1612,7 +1606,7 @@ def test_describe_instance_attribute():
GroupName="test security group", Description="this is a test security group"
)["GroupId"]
client.run_instances(
ImageId="ami-1234abcd",
ImageId=EXAMPLE_AMI_ID,
MinCount=1,
MaxCount=1,
SecurityGroupIds=[security_group_id],

View file

@ -8,6 +8,7 @@ from boto3 import Session
from moto import mock_ec2_deprecated, mock_autoscaling_deprecated, mock_elb_deprecated
from moto.ec2 import ec2_backends
from tests import EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2
def test_use_boto_regions():
@ -32,24 +33,23 @@ def add_servers_to_region(ami_id, count, region):
@mock_ec2_deprecated
def test_add_servers_to_a_single_region():
region = "ap-northeast-1"
add_servers_to_region("ami-1234abcd", 1, region)
add_servers_to_region("ami-5678efgh", 1, region)
add_servers_to_region(EXAMPLE_AMI_ID, 1, region)
add_servers_to_region(EXAMPLE_AMI_ID2, 1, region)
conn = boto.ec2.connect_to_region(region)
reservations = conn.get_all_instances()
len(reservations).should.equal(2)
reservations.sort(key=lambda x: x.instances[0].image_id)
reservations[0].instances[0].image_id.should.equal("ami-1234abcd")
reservations[1].instances[0].image_id.should.equal("ami-5678efgh")
image_ids = [r.instances[0].image_id for r in reservations]
image_ids.should.equal([EXAMPLE_AMI_ID, EXAMPLE_AMI_ID2])
@mock_ec2_deprecated
def test_add_servers_to_multiple_regions():
region1 = "us-east-1"
region2 = "ap-northeast-1"
add_servers_to_region("ami-1234abcd", 1, region1)
add_servers_to_region("ami-5678efgh", 1, region2)
add_servers_to_region(EXAMPLE_AMI_ID, 1, region1)
add_servers_to_region(EXAMPLE_AMI_ID2, 1, region2)
us_conn = boto.ec2.connect_to_region(region1)
ap_conn = boto.ec2.connect_to_region(region2)
@ -59,8 +59,8 @@ def test_add_servers_to_multiple_regions():
len(us_reservations).should.equal(1)
len(ap_reservations).should.equal(1)
us_reservations[0].instances[0].image_id.should.equal("ami-1234abcd")
ap_reservations[0].instances[0].image_id.should.equal("ami-5678efgh")
us_reservations[0].instances[0].image_id.should.equal(EXAMPLE_AMI_ID)
ap_reservations[0].instances[0].image_id.should.equal(EXAMPLE_AMI_ID2)
@mock_autoscaling_deprecated
@ -77,7 +77,7 @@ def test_create_autoscaling_group():
us_conn = boto.ec2.autoscale.connect_to_region("us-east-1")
config = boto.ec2.autoscale.LaunchConfiguration(
name="us_tester", image_id="ami-abcd1234", instance_type="m1.small"
name="us_tester", image_id=EXAMPLE_AMI_ID, instance_type="m1.small"
)
x = us_conn.create_launch_configuration(config)
@ -104,7 +104,7 @@ def test_create_autoscaling_group():
ap_conn = boto.ec2.autoscale.connect_to_region("ap-northeast-1")
config = boto.ec2.autoscale.LaunchConfiguration(
name="ap_tester", image_id="ami-efgh5678", instance_type="m1.small"
name="ap_tester", image_id=EXAMPLE_AMI_ID, instance_type="m1.small"
)
ap_conn.create_launch_configuration(config)

View file

@ -10,6 +10,7 @@ from botocore.exceptions import ClientError
import sure # noqa
from moto import mock_ec2, mock_ec2_deprecated
from tests import EXAMPLE_AMI_ID
from tests.helpers import requires_boto_gte
@ -408,7 +409,7 @@ def test_routes_replace():
# Various route targets
igw = conn.create_internet_gateway()
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
# Create initial route

View file

@ -3,6 +3,7 @@ import re
import sure # noqa
import moto.server as server
from tests import EXAMPLE_AMI_ID
"""
Test the different server responses
@ -14,7 +15,7 @@ def test_ec2_server_get():
test_client = backend.test_client()
res = test_client.get(
"/?Action=RunInstances&ImageId=ami-60a54009",
"/?Action=RunInstances&ImageId=" + EXAMPLE_AMI_ID,
headers={"Host": "ec2.us-east-1.amazonaws.com"},
)

View file

@ -5,6 +5,7 @@ import sure # noqa
from moto import mock_ec2
from moto.core import ACCOUNT_ID
from tests import EXAMPLE_AMI_ID
def get_subnet_id(conn):
@ -24,7 +25,7 @@ def spot_config(subnet_id, allocation_strategy="lowestPrice"):
"IamFleetRole": "arn:aws:iam::{}:role/fleet".format(ACCOUNT_ID),
"LaunchSpecifications": [
{
"ImageId": "ami-123",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "my-key",
"SecurityGroups": [{"GroupId": "sg-123"}],
"UserData": "some user data",
@ -54,7 +55,7 @@ def spot_config(subnet_id, allocation_strategy="lowestPrice"):
"SpotPrice": "0.13",
},
{
"ImageId": "ami-123",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "my-key",
"SecurityGroups": [{"GroupId": "sg-123"}],
"UserData": "some user data",
@ -108,7 +109,7 @@ def test_create_spot_fleet_with_lowest_price():
launch_spec["IamInstanceProfile"].should.equal(
{"Arn": "arn:aws:iam::{}:role/fleet".format(ACCOUNT_ID)}
)
launch_spec["ImageId"].should.equal("ami-123")
launch_spec["ImageId"].should.equal(EXAMPLE_AMI_ID)
launch_spec["InstanceType"].should.equal("t2.small")
launch_spec["KeyName"].should.equal("my-key")
launch_spec["Monitoring"].should.equal({"Enabled": True})

View file

@ -12,6 +12,7 @@ import sure # noqa
from moto import mock_ec2, mock_ec2_deprecated, settings
from moto.ec2.models import ec2_backends
from moto.core.utils import iso_8601_datetime_with_milliseconds
from tests import EXAMPLE_AMI_ID
@mock_ec2
@ -41,7 +42,7 @@ def test_request_spot_instances():
LaunchGroup="the-group",
AvailabilityZoneGroup="my-group",
LaunchSpecification={
"ImageId": "ami-abcd1234",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "test",
"SecurityGroups": ["group1", "group2"],
"UserData": "some test data",
@ -69,7 +70,7 @@ def test_request_spot_instances():
LaunchGroup="the-group",
AvailabilityZoneGroup="my-group",
LaunchSpecification={
"ImageId": "ami-abcd1234",
"ImageId": EXAMPLE_AMI_ID,
"KeyName": "test",
"SecurityGroups": ["group1", "group2"],
"UserData": "some test data",
@ -100,7 +101,7 @@ def test_request_spot_instances():
]
set(security_group_names).should.equal(set(["group1", "group2"]))
launch_spec["ImageId"].should.equal("ami-abcd1234")
launch_spec["ImageId"].should.equal(EXAMPLE_AMI_ID)
launch_spec["KeyName"].should.equal("test")
launch_spec["InstanceType"].should.equal("m1.small")
launch_spec["KernelId"].should.equal("test-kernel")
@ -116,7 +117,7 @@ def test_request_spot_instances_default_arguments():
conn = boto3.client("ec2", "us-east-1")
request = conn.request_spot_instances(
SpotPrice="0.5", LaunchSpecification={"ImageId": "ami-abcd1234"}
SpotPrice="0.5", LaunchSpecification={"ImageId": EXAMPLE_AMI_ID}
)
requests = conn.describe_spot_instance_requests()["SpotInstanceRequests"]
@ -138,7 +139,7 @@ def test_request_spot_instances_default_arguments():
]
security_group_names.should.equal(["default"])
launch_spec["ImageId"].should.equal("ami-abcd1234")
launch_spec["ImageId"].should.equal(EXAMPLE_AMI_ID)
request.shouldnt.contain("KeyName")
launch_spec["InstanceType"].should.equal("m1.small")
request.shouldnt.contain("KernelId")
@ -150,7 +151,7 @@ def test_request_spot_instances_default_arguments():
def test_cancel_spot_instance_request():
conn = boto.connect_ec2()
conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
requests = conn.get_all_spot_instance_requests()
requests.should.have.length_of(1)
@ -176,7 +177,7 @@ def test_request_spot_instances_fulfilled():
"""
conn = boto.ec2.connect_to_region("us-east-1")
request = conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
request = conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
requests = conn.get_all_spot_instance_requests()
requests.should.have.length_of(1)
@ -201,7 +202,7 @@ def test_tag_spot_instance_request():
"""
conn = boto.connect_ec2()
request = conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
request = conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
request[0].add_tag("tag1", "value1")
request[0].add_tag("tag2", "value2")
@ -220,9 +221,9 @@ def test_get_all_spot_instance_requests_filtering():
"""
conn = boto.connect_ec2()
request1 = conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
request2 = conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
request1 = conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
request2 = conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
request1[0].add_tag("tag1", "value1")
request1[0].add_tag("tag2", "value2")
request2[0].add_tag("tag1", "value1")
@ -246,7 +247,7 @@ def test_get_all_spot_instance_requests_filtering():
@mock_ec2_deprecated
def test_request_spot_instances_setting_instance_id():
conn = boto.ec2.connect_to_region("us-east-1")
request = conn.request_spot_instances(price=0.5, image_id="ami-abcd1234")
request = conn.request_spot_instances(price=0.5, image_id=EXAMPLE_AMI_ID)
if not settings.TEST_SERVER_MODE:
req = ec2_backends["us-east-1"].spot_instance_requests[request[0].id]

View file

@ -12,6 +12,7 @@ import sure # noqa
from boto.exception import EC2ResponseError
from botocore.exceptions import ClientError, ParamValidationError
from moto import mock_ec2, mock_ec2_deprecated
from tests import EXAMPLE_AMI_ID
@mock_ec2_deprecated
@ -661,7 +662,9 @@ def test_run_instances_should_attach_to_default_subnet():
client = boto3.client("ec2", region_name="us-west-1")
ec2.create_security_group(GroupName="sg01", Description="Test security group sg01")
# run_instances
instances = client.run_instances(MinCount=1, MaxCount=1, SecurityGroups=["sg01"],)
instances = client.run_instances(
ImageId=EXAMPLE_AMI_ID, MinCount=1, MaxCount=1, SecurityGroups=["sg01"],
)
# Assert subnet is created appropriately
subnets = client.describe_subnets()["Subnets"]
default_subnet_id = subnets[0]["SubnetId"]

View file

@ -12,12 +12,13 @@ import sure # noqa
from moto import mock_ec2_deprecated, mock_ec2
import pytest
from tests import EXAMPLE_AMI_ID
@mock_ec2_deprecated
def test_add_tag():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as ex:
@ -41,7 +42,7 @@ def test_add_tag():
@mock_ec2_deprecated
def test_remove_tag():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("a key", "some value")
@ -70,7 +71,7 @@ def test_remove_tag():
@mock_ec2_deprecated
def test_get_all_tags():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("a key", "some value")
@ -84,7 +85,7 @@ def test_get_all_tags():
@mock_ec2_deprecated
def test_get_all_tags_with_special_characters():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("a key", "some<> value")
@ -98,7 +99,7 @@ def test_get_all_tags_with_special_characters():
@mock_ec2_deprecated
def test_create_tags():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
tag_dict = {
"a key": "some value",
@ -125,7 +126,7 @@ def test_create_tags():
@mock_ec2_deprecated
def test_tag_limit_exceeded():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
tag_dict = {}
for i in range(51):
@ -154,7 +155,7 @@ def test_tag_limit_exceeded():
@mock_ec2_deprecated
def test_invalid_parameter_tag_null():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
with pytest.raises(EC2ResponseError) as cm:
@ -183,7 +184,7 @@ def test_invalid_id():
@mock_ec2_deprecated
def test_get_all_tags_resource_id_filter():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("an instance key", "some value")
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
@ -210,7 +211,7 @@ def test_get_all_tags_resource_id_filter():
@mock_ec2_deprecated
def test_get_all_tags_resource_type_filter():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("an instance key", "some value")
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
@ -237,7 +238,7 @@ def test_get_all_tags_resource_type_filter():
@mock_ec2_deprecated
def test_get_all_tags_key_filter():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("an instance key", "some value")
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
@ -256,19 +257,19 @@ def test_get_all_tags_key_filter():
@mock_ec2_deprecated
def test_get_all_tags_value_filter():
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance = reservation.instances[0]
instance.add_tag("an instance key", "some value")
reservation_b = conn.run_instances("ami-1234abcd")
reservation_b = conn.run_instances(EXAMPLE_AMI_ID)
instance_b = reservation_b.instances[0]
instance_b.add_tag("an instance key", "some other value")
reservation_c = conn.run_instances("ami-1234abcd")
reservation_c = conn.run_instances(EXAMPLE_AMI_ID)
instance_c = reservation_c.instances[0]
instance_c.add_tag("an instance key", "other value*")
reservation_d = conn.run_instances("ami-1234abcd")
reservation_d = conn.run_instances(EXAMPLE_AMI_ID)
instance_d = reservation_d.instances[0]
instance_d.add_tag("an instance key", "other value**")
reservation_e = conn.run_instances("ami-1234abcd")
reservation_e = conn.run_instances(EXAMPLE_AMI_ID)
instance_e = reservation_e.instances[0]
instance_e.add_tag("an instance key", "other value*?")
image_id = conn.create_image(instance.id, "test-ami", "this is a test ami")
@ -304,7 +305,7 @@ def test_retrieved_instances_must_contain_their_tags():
tags_to_be_set = {tag_key: tag_value}
conn = boto.connect_ec2("the_key", "the_secret")
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
reservation.should.be.a(Reservation)
reservation.instances.should.have.length_of(1)
instance = reservation.instances[0]
@ -380,10 +381,10 @@ def test_filter_instances_by_wildcard_tags():
conn = boto.connect_ec2(
aws_access_key_id="the_key", aws_secret_access_key="the_secret"
)
reservation = conn.run_instances("ami-1234abcd")
reservation = conn.run_instances(EXAMPLE_AMI_ID)
instance_a = reservation.instances[0]
instance_a.add_tag("Key1", "Value1")
reservation_b = conn.run_instances("ami-1234abcd")
reservation_b = conn.run_instances(EXAMPLE_AMI_ID)
instance_b = reservation_b.instances[0]
instance_b.add_tag("Key1", "Value2")
@ -473,7 +474,7 @@ def test_delete_tag_empty_resource():
@mock_ec2
def test_retrieve_resource_with_multiple_tags():
ec2 = boto3.resource("ec2", region_name="us-west-1")
blue, green = ec2.create_instances(ImageId="ANY_ID", MinCount=2, MaxCount=2)
blue, green = ec2.create_instances(ImageId=EXAMPLE_AMI_ID, MinCount=2, MaxCount=2)
ec2.create_tags(
Resources=[blue.instance_id],
Tags=[