def test_get_limits_again(self): """test that existing limits dict is returned on subsequent calls""" mock_limits = Mock() cls = _FirehoseService(21, 43) cls.limits = mock_limits res = cls.get_limits() assert res == mock_limits
def test_init(self): """test __init__()""" cls = _FirehoseService(21, 43) assert cls.service_name == 'Firehose' assert cls.api_name == 'firehose' assert cls.conn is None assert cls.warning_threshold == 21 assert cls.critical_threshold == 43
def test_get_limits(self): cls = _FirehoseService(21, 43) cls.limits = {} res = cls.get_limits() assert sorted(res.keys()) == sorted([ 'Delivery streams per region', ]) for name, limit in res.items(): assert limit.service == cls assert limit.def_warning_threshold == 21 assert limit.def_critical_threshold == 43
def test_find_usage_with_endpoint_connection_error(self): mock_conn = Mock() client_error = EndpointConnectionError( endpoint_url='https://firehose.bad-region.amazonaws.com/') mock_conn.list_delivery_streams.side_effect = client_error cls = _FirehoseService(21, 43) cls.conn = mock_conn with patch('%s.logger' % self.pbm, autospec=True) as mock_logger: cls.find_usage() error_msg = ( 'Caught exception when trying to use Firehose; ' 'perhaps the Firehose service is not available in this region?') assert call.error(error_msg, exc_info=1) in mock_logger.mock_calls
def test_find_usage(self): responses = fixtures.test_list_delivery_streams # create a flat list of delivery stream names from the fixture response_streams = [] for resp in responses: for stream_name in resp['DeliveryStreamNames']: response_streams.append(stream_name) mock_conn = Mock() mock_conn.list_delivery_streams.side_effect = responses cls = _FirehoseService(21, 43, region='us-west-2') cls.conn = mock_conn cls.find_usage() assert mock_conn.list_delivery_streams.call_count == len(responses) assert cls._have_usage is True usage = cls.limits['Delivery streams per region'].get_current_usage() assert len(usage) == 1 assert usage[0].value == len(response_streams) assert usage[0].resource_id == 'us-west-2' assert usage[0].aws_type == 'AWS::KinesisFirehose::DeliveryStream'
def test_find_usage(self): responses = fixtures.test_list_delivery_streams # create a flat list of delivery stream names from the fixture response_streams = [] for resp in responses: for stream_name in resp['DeliveryStreamNames']: response_streams.append(stream_name) mock_conn = Mock() mock_conn.list_delivery_streams.side_effect = responses cls = _FirehoseService(21, 43, {'region_name': 'us-west-2'}) cls.conn = mock_conn cls.find_usage() assert mock_conn.list_delivery_streams.call_count == len(responses) assert cls._have_usage is True usage = cls.limits['Delivery streams per region'].get_current_usage() assert len(usage) == 1 assert usage[0].value == len(response_streams) assert usage[0].resource_id == 'us-west-2' assert usage[0].aws_type == 'AWS::KinesisFirehose::DeliveryStream'
def test_required_iam_permissions(self): cls = _FirehoseService(21, 43) assert cls.required_iam_permissions() == [ "firehose:ListDeliveryStreams", ]