Пример #1
0
    def test_get_limits(self):
        cls = _CloudTrailService(21, 43, {}, None)

        limit_dict = cls.get_limits()
        for limit in limit_dict:
            assert isinstance(limit_dict[limit], AwsLimit)
            assert limit == limit_dict[limit].name
            assert limit_dict[limit].service == cls
        assert len(limit_dict) == 3

        trails_limit = limit_dict['Trails Per Region']
        assert trails_limit.limit_type == AWS_TYPE
        assert trails_limit.default_limit == 5

        event_selectors_limit = limit_dict['Event Selectors Per Trail']
        assert event_selectors_limit.limit_type == AWS_TYPE
        assert event_selectors_limit.limit_subtype == \
            'AWS::CloudTrail::EventSelector'
        assert event_selectors_limit.default_limit == 5

        data_resources_limit = limit_dict['Data Resources Per Trail']
        assert data_resources_limit.limit_type == AWS_TYPE
        assert data_resources_limit.limit_subtype == \
            'AWS::CloudTrail::DataResource'
        assert data_resources_limit.default_limit == 250
Пример #2
0
 def test_get_limits_again(self):
     """Test that existing limits dict is returned on subsequent calls"""
     mock_limits = Mock(spec_set=AwsLimit)
     cls = _CloudTrailService(21, 43, {}, None)
     cls.limits = mock_limits
     response = cls.get_limits()
     assert response == mock_limits
Пример #3
0
 def test_get_limits_again(self):
     """Test that existing limits dict is returned on subsequent calls"""
     mock_limits = Mock(spec_set=AwsLimit)
     cls = _CloudTrailService(21, 43)
     cls.limits = mock_limits
     response = cls.get_limits()
     assert response == mock_limits
Пример #4
0
    def test_get_limits(self):
        cls = _CloudTrailService(21, 43)

        limit_dict = cls.get_limits()
        for limit in limit_dict:
            assert isinstance(limit_dict[limit], AwsLimit)
            assert limit == limit_dict[limit].name
            assert limit_dict[limit].service == cls
        assert len(limit_dict) == 3

        trails_limit = limit_dict['Trails Per Region']
        assert trails_limit.limit_type == AWS_TYPE
        assert trails_limit.default_limit == 5

        event_selectors_limit = limit_dict['Event Selectors Per Trail']
        assert event_selectors_limit.limit_type == AWS_TYPE
        assert event_selectors_limit.limit_subtype == \
            'AWS::CloudTrail::EventSelector'
        assert event_selectors_limit.default_limit == 5

        data_resources_limit = limit_dict['Data Resources Per Trail']
        assert data_resources_limit.limit_type == AWS_TYPE
        assert data_resources_limit.limit_subtype == \
            'AWS::CloudTrail::DataResource'
        assert data_resources_limit.default_limit == 250
Пример #5
0
 def test_init(self):
     with patch('%s.get_limits' % PATCH_BASE):
         cls = _CloudTrailService(21, 43, {}, None)
     assert cls.service_name == 'CloudTrail'
     assert cls.api_name == 'cloudtrail'
     assert cls.conn is None
     assert cls.resource_conn is None
     assert cls.warning_threshold == 21
     assert cls.critical_threshold == 43
Пример #6
0
 def test_init(self):
     with patch('%s.get_limits' % PATCH_BASE):
         cls = _CloudTrailService(21, 43)
     assert cls.service_name == 'CloudTrail'
     assert cls.api_name == 'cloudtrail'
     assert cls.conn is None
     assert cls.resource_conn is None
     assert cls.warning_threshold == 21
     assert cls.critical_threshold == 43
Пример #7
0
    def test_find_usage(self):
        mock_trails = Mock()
        mock_conf = Mock()
        type(mock_conf).region_name = 'thisregion'
        type(mock_trails)._client_config = mock_conf
        mock_trails.describe_trails.return_value = \
            result_fixtures.CloudTrail.mock_describe_trails

        def se_selectors(*args, **kwargs):
            if kwargs['TrailName'] == 'trail2':
                return result_fixtures.CloudTrail.mock_get_event_selectors
            return {
                'TrailArn': 'arn:%s' % kwargs['TrailName'],
                'EventSelectors': []
            }

        mock_trails.get_event_selectors.side_effect = se_selectors

        with patch('%s.connect' % PATCH_BASE,) as mock_connect:
            cls = _CloudTrailService(21, 43)
            cls.conn = mock_trails
            assert cls._have_usage is False
            cls.find_usage()

        assert len(mock_connect.mock_calls) == 1
        assert cls._have_usage is True

        usage = cls.limits['Trails Per Region'].get_current_usage()
        assert len(usage) == 1
        assert usage[0].get_value() == 3

        usage = cls.limits['Event Selectors Per Trail'].get_current_usage()
        assert len(usage) == 2
        assert usage[0].get_value() == 0
        assert usage[1].get_value() == 3

        usage = cls.limits['Data Resources Per Trail'].get_current_usage()
        assert len(usage) == 2
        assert usage[0].get_value() == 0
        assert usage[1].get_value() == 3
Пример #8
0
 def test_required_iam_permissions(self):
     cls = _CloudTrailService(21, 43, {}, None)
     assert cls.required_iam_permissions() == [
         "cloudtrail:DescribeTrails",
         "cloudtrail:GetEventSelectors",
     ]
Пример #9
0
 def test_required_iam_permissions(self):
     cls = _CloudTrailService(21, 43)
     assert cls.required_iam_permissions() == [
         "cloudtrail:DescribeTrails",
         "cloudtrail:GetEventSelectors",
     ]