def test_get_limits_again(self): """test that existing limits dict is returned on subsequent calls""" mock_limits = Mock() cls = _CloudformationService(21, 43, {}, None) cls.limits = mock_limits res = cls.get_limits() assert res == mock_limits
def test_find_usage(self): mock_paginator = Mock() mock_paginator.paginate.return_value = [ { 'Stacks': [ {'StackStatus': 'CREATE_IN_PROGRESS'}, {'StackStatus': 'DELETE_COMPLETE'}, {'StackStatus': 'DELETE_IN_PROGRESS'}, {'StackStatus': 'CREATE_FAILED'}, ] }, { 'Stacks': [ {'StackStatus': 'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS'}, {'StackStatus': 'ROLLBACK_COMPLETE'}, {'StackStatus': 'DELETE_FAILED'}, ] }, ] mock_conn = Mock() mock_conn.get_paginator.return_value = mock_paginator with patch('%s.connect' % pb) as mock_connect: cls = _CloudformationService(21, 43) cls.conn = mock_conn assert cls._have_usage is False cls.find_usage() assert mock_connect.mock_calls == [call()] assert cls._have_usage is True assert mock_conn.mock_calls == [ call.get_paginator('describe_stacks'), call.get_paginator().paginate() ] assert mock_paginator.mock_calls == [call.paginate()] assert len(cls.limits['Stacks'].get_current_usage()) == 1 assert cls.limits['Stacks'].get_current_usage()[0].get_value() == 6
def test_get_limits_again(self): """test that existing limits dict is returned on subsequent calls""" mock_limits = Mock() cls = _CloudformationService(21, 43) cls.limits = mock_limits res = cls.get_limits() assert res == mock_limits
def test_update_limits_from_api(self): mock_conn = Mock() mock_conn.describe_account_limits.return_value = { 'AccountLimits': [ { 'Name': 'StackLimit', 'Value': 400 }, { 'Name': 'Foo', 'Value': 1 } ], 'ResponseMetadata': { 'HTTPStatusCode': 200, 'RequestId': 'cf0140c4' } } with patch('%s.connect' % pb) as mock_connect: cls = _CloudformationService(21, 43) cls.conn = mock_conn cls._update_limits_from_api() assert mock_connect.mock_calls == [call()] assert mock_conn.mock_calls == [call.describe_account_limits()] assert cls.limits['Stacks'].api_limit == 400
def test_init(self): """test __init__()""" cls = _CloudformationService(21, 43, {}, None) assert cls.service_name == 'CloudFormation' assert cls.api_name == 'cloudformation' assert cls.conn is None assert cls.warning_threshold == 21 assert cls.critical_threshold == 43
def test_init(self): """test __init__()""" cls = _CloudformationService(21, 43) assert cls.service_name == 'CloudFormation' assert cls.api_name == 'cloudformation' assert cls.conn is None assert cls.warning_threshold == 21 assert cls.critical_threshold == 43
def test_get_limits(self): cls = _CloudformationService(21, 43, {}, None) cls.limits = {} res = cls.get_limits() assert sorted(res.keys()) == sorted([ 'Stacks', ]) limit = cls.limits['Stacks'] assert limit.service == cls assert limit.def_warning_threshold == 21 assert limit.def_critical_threshold == 43 assert limit.default_limit == 200
def test_get_limits(self): cls = _CloudformationService(21, 43) cls.limits = {} res = cls.get_limits() assert sorted(res.keys()) == sorted([ 'Stacks', ]) limit = cls.limits['Stacks'] assert limit.service == cls assert limit.def_warning_threshold == 21 assert limit.def_critical_threshold == 43 assert limit.default_limit == 200
def test_required_iam_permissions(self): cls = _CloudformationService(21, 43, {}, None) assert cls.required_iam_permissions() == [ 'cloudformation:DescribeAccountLimits', 'cloudformation:DescribeStacks' ]
def test_required_iam_permissions(self): cls = _CloudformationService(21, 43) assert cls.required_iam_permissions() == [ 'cloudformation:DescribeAccountLimits', 'cloudformation:DescribeStacks' ]