moto/tests/test_opsworks/test_apps.py
Loukas Leontopoulos b7ae704ad2 Add opsworks app mocks (#1481)
* Add implementation for OpsWorks create_app and describe_apps

* Fix the name of the test

* Add some more exception tests
2018-03-21 09:05:57 -07:00

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"
)