163 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import boto3
 | |
| import pytest
 | |
| 
 | |
| from botocore.exceptions import ClientError
 | |
| from moto import mock_apigatewayv2
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_get_vpc_links_empty():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-west-1")
 | |
| 
 | |
|     resp = client.get_vpc_links()
 | |
|     resp.should.have.key("Items").equals([])
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_create_vpc_links():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-west-1")
 | |
| 
 | |
|     resp = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )
 | |
| 
 | |
|     resp.should.have.key("CreatedDate")
 | |
|     resp.should.have.key("Name").equals("vpcl")
 | |
|     resp.should.have.key("SecurityGroupIds").equals(["sg1", "sg2"])
 | |
|     resp.should.have.key("SubnetIds").equals(["sid1", "sid2"])
 | |
|     resp.should.have.key("Tags").equals({"key1": "value1"})
 | |
|     resp.should.have.key("VpcLinkId")
 | |
|     resp.should.have.key("VpcLinkStatus").equals("AVAILABLE")
 | |
|     resp.should.have.key("VpcLinkVersion").equals("V2")
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_get_vpc_link():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-west-1")
 | |
| 
 | |
|     vpc_link_id = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )["VpcLinkId"]
 | |
| 
 | |
|     resp = client.get_vpc_link(VpcLinkId=vpc_link_id)
 | |
| 
 | |
|     resp.should.have.key("CreatedDate")
 | |
|     resp.should.have.key("Name").equals("vpcl")
 | |
|     resp.should.have.key("SecurityGroupIds").equals(["sg1", "sg2"])
 | |
|     resp.should.have.key("SubnetIds").equals(["sid1", "sid2"])
 | |
|     resp.should.have.key("Tags").equals({"key1": "value1"})
 | |
|     resp.should.have.key("VpcLinkId")
 | |
|     resp.should.have.key("VpcLinkStatus").equals("AVAILABLE")
 | |
|     resp.should.have.key("VpcLinkVersion").equals("V2")
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_get_vpc_link_unknown():
 | |
|     client = boto3.client("apigatewayv2", region_name="ap-southeast-1")
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_vpc_link(VpcLinkId="unknown")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NotFoundException")
 | |
|     err["Message"].should.equal("Invalid VpcLink identifier specified unknown")
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_get_vpc_links():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-west-1")
 | |
| 
 | |
|     vpc_link_id = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )["VpcLinkId"]
 | |
| 
 | |
|     links = client.get_vpc_links()["Items"]
 | |
|     links.should.have.length_of(1)
 | |
|     links[0]["VpcLinkId"].should.equal(vpc_link_id)
 | |
| 
 | |
|     client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )
 | |
| 
 | |
|     links = client.get_vpc_links()["Items"]
 | |
|     links.should.have.length_of(2)
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_delete_vpc_link():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-north-1")
 | |
| 
 | |
|     vpc_link_id = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )["VpcLinkId"]
 | |
| 
 | |
|     links = client.get_vpc_links()["Items"]
 | |
|     links.should.have.length_of(1)
 | |
| 
 | |
|     client.delete_vpc_link(VpcLinkId=vpc_link_id)
 | |
| 
 | |
|     links = client.get_vpc_links()["Items"]
 | |
|     links.should.have.length_of(0)
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_update_vpc_link():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-north-1")
 | |
|     vpc_link_id = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"key1": "value1"},
 | |
|     )["VpcLinkId"]
 | |
| 
 | |
|     resp = client.update_vpc_link(VpcLinkId=vpc_link_id, Name="vpcl2")
 | |
| 
 | |
|     resp.should.have.key("CreatedDate")
 | |
|     resp.should.have.key("Name").equals("vpcl2")
 | |
|     resp.should.have.key("SecurityGroupIds").equals(["sg1", "sg2"])
 | |
|     resp.should.have.key("SubnetIds").equals(["sid1", "sid2"])
 | |
|     resp.should.have.key("Tags").equals({"key1": "value1"})
 | |
|     resp.should.have.key("VpcLinkId")
 | |
|     resp.should.have.key("VpcLinkStatus").equals("AVAILABLE")
 | |
|     resp.should.have.key("VpcLinkVersion").equals("V2")
 | |
| 
 | |
| 
 | |
| @mock_apigatewayv2
 | |
| def test_untag_vpc_link():
 | |
|     client = boto3.client("apigatewayv2", region_name="eu-west-1")
 | |
| 
 | |
|     vpc_link_id = client.create_vpc_link(
 | |
|         Name="vpcl",
 | |
|         SecurityGroupIds=["sg1", "sg2"],
 | |
|         SubnetIds=["sid1", "sid2"],
 | |
|         Tags={"Key1": "value1", "key2": "val2"},
 | |
|     )["VpcLinkId"]
 | |
| 
 | |
|     arn = f"arn:aws:apigateway:eu-west-1::/vpclinks/{vpc_link_id}"
 | |
|     client.untag_resource(ResourceArn=arn, TagKeys=["Key1"])
 | |
| 
 | |
|     resp = client.get_vpc_link(VpcLinkId=vpc_link_id)
 | |
| 
 | |
|     resp.should.have.key("CreatedDate")
 | |
|     resp.should.have.key("Name").equals("vpcl")
 | |
|     resp.should.have.key("SecurityGroupIds").equals(["sg1", "sg2"])
 | |
|     resp.should.have.key("SubnetIds").equals(["sid1", "sid2"])
 | |
|     resp.should.have.key("Tags").equals({"key2": "val2"})
 | |
|     resp.should.have.key("VpcLinkId")
 | |
|     resp.should.have.key("VpcLinkStatus").equals("AVAILABLE")
 | |
|     resp.should.have.key("VpcLinkVersion").equals("V2")
 |