b7ae704ad2
* Add implementation for OpsWorks create_app and describe_apps * Fix the name of the test * Add some more exception tests
103 lines
2.5 KiB
Python
103 lines
2.5 KiB
Python
from __future__ import unicode_literals
|
|
import boto3
|
|
from freezegun import freeze_time
|
|
import sure # noqa
|
|
import re
|
|
|
|
from moto import mock_opsworks
|
|
|
|
|
|
@freeze_time("2015-01-01")
|
|
@mock_opsworks
|
|
def test_create_app_response():
|
|
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",
|
|
DefaultInstanceProfileArn="profile_arn"
|
|
)['StackId']
|
|
|
|
response = client.create_app(
|
|
StackId=stack_id,
|
|
Type="other",
|
|
Name="TestApp"
|
|
)
|
|
|
|
response.should.contain("AppId")
|
|
|
|
second_stack_id = client.create_stack(
|
|
Name="test_stack_2",
|
|
Region="us-east-1",
|
|
ServiceRoleArn="service_arn",
|
|
DefaultInstanceProfileArn="profile_arn"
|
|
)['StackId']
|
|
|
|
response = client.create_app(
|
|
StackId=second_stack_id,
|
|
Type="other",
|
|
Name="TestApp"
|
|
)
|
|
|
|
response.should.contain("AppId")
|
|
|
|
# ClientError
|
|
client.create_app.when.called_with(
|
|
StackId=stack_id,
|
|
Type="other",
|
|
Name="TestApp"
|
|
).should.throw(
|
|
Exception, re.compile(r'already an app named "TestApp"')
|
|
)
|
|
|
|
# ClientError
|
|
client.create_app.when.called_with(
|
|
StackId="nothere",
|
|
Type="other",
|
|
Name="TestApp"
|
|
).should.throw(
|
|
Exception, "nothere"
|
|
)
|
|
|
|
@freeze_time("2015-01-01")
|
|
@mock_opsworks
|
|
def test_describe_apps():
|
|
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",
|
|
DefaultInstanceProfileArn="profile_arn"
|
|
)['StackId']
|
|
app_id = client.create_app(
|
|
StackId=stack_id,
|
|
Type="other",
|
|
Name="TestApp"
|
|
)['AppId']
|
|
|
|
rv1 = client.describe_apps(StackId=stack_id)
|
|
rv2 = client.describe_apps(AppIds=[app_id])
|
|
rv1['Apps'].should.equal(rv2['Apps'])
|
|
|
|
rv1['Apps'][0]['Name'].should.equal("TestApp")
|
|
|
|
# ClientError
|
|
client.describe_apps.when.called_with(
|
|
StackId=stack_id,
|
|
AppIds=[app_id]
|
|
).should.throw(
|
|
Exception, "Please provide one or more app IDs or a stack ID"
|
|
)
|
|
# ClientError
|
|
client.describe_apps.when.called_with(
|
|
StackId="nothere"
|
|
).should.throw(
|
|
Exception, "Unable to find stack with ID nothere"
|
|
)
|
|
# ClientError
|
|
client.describe_apps.when.called_with(
|
|
AppIds=["nothere"]
|
|
).should.throw(
|
|
Exception, "nothere"
|
|
)
|