moto/tests/test_ec2/test_egress_only_igw.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

111 lines
3.3 KiB
Python
Raw Normal View History

import boto3
import pytest
from botocore.exceptions import ClientError
from moto import mock_ec2
@mock_ec2
def test_create():
ec2 = boto3.resource("ec2", region_name="us-west-1")
client = boto3.client("ec2", region_name="us-west-1")
vpc = list(ec2.vpcs.all())[0]
res = client.create_egress_only_internet_gateway(VpcId=vpc.id)
gateway = res["EgressOnlyInternetGateway"]
assert gateway["EgressOnlyInternetGatewayId"].startswith("eigw-")
assert gateway["Tags"] == []
assert "Attachments" in gateway
assert len(gateway["Attachments"]) == 1
assert gateway["Attachments"][0] == {"State": "attached", "VpcId": vpc.id}
@mock_ec2
def test_create_with_unknown_vpc():
client = boto3.client("ec2", region_name="us-west-1")
with pytest.raises(ClientError) as ex:
client.create_egress_only_internet_gateway(VpcId="vpc-says-what")
err = ex.value.response["Error"]
assert err["Code"] == "InvalidVpcID.NotFound"
assert err["Message"] == "VpcID vpc-says-what does not exist."
@mock_ec2
def test_describe_all():
ec2 = boto3.resource("ec2", region_name="us-west-1")
client = boto3.client("ec2", region_name="us-west-1")
vpc = list(ec2.vpcs.all())[0]
gw1 = client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gw2 = client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gateways = client.describe_egress_only_internet_gateways()[
"EgressOnlyInternetGateways"
]
2021-10-05 17:11:07 +00:00
assert len(gateways) >= 2, "Should have two recently created gateways"
assert gw1 in gateways
assert gw2 in gateways
@mock_ec2
def test_describe_one():
ec2 = boto3.resource("ec2", region_name="us-west-1")
client = boto3.client("ec2", region_name="us-west-1")
vpc = list(ec2.vpcs.all())[0]
gw1 = client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gw1_id = gw1["EgressOnlyInternetGatewayId"]
client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gw3 = client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gw3_id = gw3["EgressOnlyInternetGatewayId"]
gateways = client.describe_egress_only_internet_gateways(
EgressOnlyInternetGatewayIds=[gw1_id, gw3_id]
)["EgressOnlyInternetGateways"]
assert len(gateways) == 2
assert gw1 in gateways
assert gw3 in gateways
@mock_ec2
def test_create_and_delete():
ec2 = boto3.resource("ec2", region_name="us-west-1")
client = boto3.client("ec2", region_name="us-west-1")
vpc = list(ec2.vpcs.all())[0]
gw1 = client.create_egress_only_internet_gateway(VpcId=vpc.id)[
"EgressOnlyInternetGateway"
]
gw1_id = gw1["EgressOnlyInternetGatewayId"]
assert (
len(
client.describe_egress_only_internet_gateways(
EgressOnlyInternetGatewayIds=[gw1_id]
)["EgressOnlyInternetGateways"]
)
== 1
)
client.delete_egress_only_internet_gateway(EgressOnlyInternetGatewayId=gw1_id)
assert (
len(
client.describe_egress_only_internet_gateways(
EgressOnlyInternetGatewayIds=[gw1_id]
)["EgressOnlyInternetGateways"]
)
== 0
)