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
Beispiel #2
0
 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
Beispiel #4
0
    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'
     ]