It should be a string, not a tuple, and it has a different form.
I'm not sure if it used to be different, but in the most recent
boto3/botocore, the message is "Stack with id {id} does not exist"
```python
>>> cf = boto3.client('cloudformation', region_name='us-west-2')
>>> try:
... cf.describe_stacks(StackName='adfgfhghg')
... except botocore.exceptions.ClientError as e:
... print e.response['Error']['Message']
...
Stack with id adfgfhghg does not exist
```
I am on boto3 1.4.2 and botocore 1.4.82 as of this commit message.
unix_time() from moto.core.utils is used as the time source through moto,
and it is identical to time.time() in output. Hence, using unix_time()
since it makes mocking easier during testing (when time is mocked out).
* Add cloudformation support to AWS::ECS::Cluster
* Add CloudFormation support to AWS::ECS::TaskDefinition
* Add CloudFormation support to AWS::ECS::Service
* Add support to update AWS::ECS::Cluster through CloudFormation
* Fix Cluster.update_from_cloudformation_json to return original_resource if nothing changed
* Implement TaskDefinition.update_from_cloudformation_json
* Implement Service.update_from_cloudformation_json
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3
* improved IPv4 and IPv6 checking with optional ports
* typo
* subdomain bucket creation with trailing '/' did not work
* Use regex for Host field check to determine IPv4/IPv6
* add testcases for trailing slash, IPv4 and IPv6
* describe_task_definition support
* Refactor fetch_task_definition
* Add ECS Descriptors (#772)
* Add support for "DescribeServices" in ecs mock
* Add support for "DescribeTaskDefinition" in ecs
* Let ecs responses handle baseobject for services
* Update Cloudformation/parsing#load_parameters to split commadelimitedlists into lists (#774)
* Fix JSON dump error in ecs.update_service with task_definition (#775)
* Fix s3bucketpath handling for IP based requests (#765)
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3
* improved IPv4 and IPv6 checking with optional ports
* typo
* Freezetime.
* Add S3 ACL for aws-exec-read. Closes#740.
* Fixed time formatting in ec2/models.py (#778)
* Fixed time formatting in ec2/models.py
* Used freezegun on test that was failing due to time progression causing timestamp differences.
* rename duplicate rds/models db_instance_identifier to physical_resource_id (#776)
* rename duplicate db_instance_identifier to physical_resource_id
* Update create_from_cloudformation_json to use db_source_identifier str
* Update code to be more conventional.
* describe_task_definition support
* Refactor fetch_task_definition
* rename duplicate db_instance_identifier to physical_resource_id
* Update create_from_cloudformation_json to use db_source_identifier str
* Update code to be more conventional.
* Add support for delete_login_profile.
Mock deletion of login profile. Set password to
none. Add tests to cover new endpoint.
* Fix typo in create_login_profile response.
Change CreateUserResult to CreateLoginProfileResult
in the CREATE_LOGIN_PROFILE_TEMPLATE. Caused KeyError
when using boto3.
Add test to cover boto3 in addition to boto.