moto/tests/test_opsworks/test_layers.py

97 lines
2.9 KiB
Python
Raw Normal View History

from __future__ import unicode_literals
import boto3
2016-11-24 01:23:47 +00:00
from freezegun import freeze_time
import sure # noqa
import re
from moto import mock_opsworks
2016-11-24 01:23:47 +00:00
@freeze_time("2015-01-01")
@mock_opsworks
def test_create_layer_response():
2019-10-31 15:44:26 +00:00
client = boto3.client("opsworks", region_name="us-east-1")
stack_id = client.create_stack(
Name="test_stack_1",
Region="us-east-1",
ServiceRoleArn="service_arn",
2019-10-31 15:44:26 +00:00
DefaultInstanceProfileArn="profile_arn",
)["StackId"]
response = client.create_layer(
StackId=stack_id,
Type="custom",
Name="TestLayer",
2019-10-31 15:44:26 +00:00
Shortname="TestLayerShortName",
)
response.should.contain("LayerId")
second_stack_id = client.create_stack(
Name="test_stack_2",
Region="us-east-1",
ServiceRoleArn="service_arn",
2019-10-31 15:44:26 +00:00
DefaultInstanceProfileArn="profile_arn",
)["StackId"]
response = client.create_layer(
StackId=second_stack_id,
Type="custom",
Name="TestLayer",
2019-10-31 15:44:26 +00:00
Shortname="TestLayerShortName",
)
response.should.contain("LayerId")
# ClientError
client.create_layer.when.called_with(
2019-10-31 15:44:26 +00:00
StackId=stack_id, Type="custom", Name="TestLayer", Shortname="_"
).should.throw(Exception, re.compile(r'already a layer named "TestLayer"'))
# ClientError
client.create_layer.when.called_with(
2019-10-31 15:44:26 +00:00
StackId=stack_id, Type="custom", Name="_", Shortname="TestLayerShortName"
).should.throw(
2019-10-31 15:44:26 +00:00
Exception, re.compile(r'already a layer with shortname "TestLayerShortName"')
)
2018-02-19 13:22:53 +00:00
# ClientError
client.create_layer.when.called_with(
2019-10-31 15:44:26 +00:00
StackId="nothere", Type="custom", Name="TestLayer", Shortname="_"
).should.throw(Exception, "nothere")
2016-11-24 01:23:47 +00:00
@freeze_time("2015-01-01")
@mock_opsworks
def test_describe_layers():
2019-10-31 15:44:26 +00:00
client = boto3.client("opsworks", region_name="us-east-1")
stack_id = client.create_stack(
Name="test_stack_1",
Region="us-east-1",
ServiceRoleArn="service_arn",
2019-10-31 15:44:26 +00:00
DefaultInstanceProfileArn="profile_arn",
)["StackId"]
layer_id = client.create_layer(
StackId=stack_id,
Type="custom",
Name="TestLayer",
2019-10-31 15:44:26 +00:00
Shortname="TestLayerShortName",
)["LayerId"]
rv1 = client.describe_layers(StackId=stack_id)
rv2 = client.describe_layers(LayerIds=[layer_id])
2019-10-31 15:44:26 +00:00
rv1["Layers"].should.equal(rv2["Layers"])
2019-10-31 15:44:26 +00:00
rv1["Layers"][0]["Name"].should.equal("TestLayer")
2018-02-19 13:22:53 +00:00
# ClientError
client.describe_layers.when.called_with(
2019-10-31 15:44:26 +00:00
StackId=stack_id, LayerIds=[layer_id]
).should.throw(Exception, "Please provide one or more layer IDs or a stack ID")
2018-02-19 13:22:53 +00:00
# ClientError
2019-10-31 15:44:26 +00:00
client.describe_layers.when.called_with(StackId="nothere").should.throw(
2018-02-19 13:22:53 +00:00
Exception, "Unable to find stack with ID nothere"
)
# ClientError
2019-10-31 15:44:26 +00:00
client.describe_layers.when.called_with(LayerIds=["nothere"]).should.throw(
2018-02-19 13:22:53 +00:00
Exception, "nothere"
)