def test_client(fixture_name, fixture, service_name, environment): endpoint_url = fixture.get("endpoint_url", None) env = {} if endpoint_url: env["AWS_ENDPOINTS"] = service_name + "=" + endpoint_url with utils.set_env(env): client = _boto3.client(service_name, **fixture) if endpoint_url: assert client.meta.endpoint_url == endpoint_url
def get_queue_arn(queue_url): return get_nested( call( _boto3.client("sqs").get_queue_attributes, QueueUrl=queue_url, AttributeNames=["QueueArn"], ), ["Attributes", "QueueArn"], )
def batch_put_records(stream_name, records, batch_size=500, **kwargs): """Put records into a kinesis stream, batched by the maximum of 500.""" client = _boto3.client("kinesis") responses = [] for b in batch(records, batch_size): responses.append( call( client.put_records, StreamName=stream_name, Records=[build(record) for record in b], ) ) return tuple(responses)
def batch_put_messages(queue_url, messages, batch_size=10, message_group_id=None, **kwargs): """Put messages into a sqs queue, batched by the maximum of 10.""" assert batch_size <= 10 # send_message_batch will fail otherwise client = _boto3.client("sqs") responses = [] for b in batch(messages, batch_size): responses.append( call( client.send_message_batch, QueueUrl=queue_url, Entries=[build(message, message_group_id) for message in b], )) return tuple(responses)
def test_client_no_env(fixture_name, fixture, service_name): endpoint_url = fixture.get("endpoint_url", None) client = _boto3.client(service_name, **fixture) if endpoint_url: assert client.meta.endpoint_url == endpoint_url
def batch_delete_messages(queue_url, entries): return call(_boto3.client("sqs").batch_delete_messages, QueueUrl=queue_url, Entries=entries)
def get_queue_url(queue_name): return call(_boto3.client("sqs").get_queue_url, QueueName=queue_name)["QueueUrl"]