def test_queue_by_servicebus_client_fail_send_batch_messages( live_servicebus_config, standard_queue): pytest.skip("TODO: Pending bugfix in uAMQP") def batch_data(): for i in range(3): yield str(i) * 1024 * 256 client = ServiceBusClient( service_namespace=live_servicebus_config['hostname'], shared_access_key_name=live_servicebus_config['key_name'], shared_access_key_value=live_servicebus_config['access_key'], debug=False) queue_client = client.get_queue(standard_queue) results = queue_client.send(BatchMessage(batch_data())) assert len(results) == 4 assert not results[0][0] assert isinstance(results[0][1], MessageSendFailed) with queue_client.get_sender() as sender: with pytest.raises(MessageSendFailed): sender.send(BatchMessage(batch_data())) with queue_client.get_sender() as sender: sender.queue_message(BatchMessage(batch_data())) results = sender.send_pending_messages() assert len(results) == 4 assert not results[0][0] assert isinstance(results[0][1], MessageSendFailed)
def test_queue_message_batch(live_servicebus_config, standard_queue): client = ServiceBusClient( service_namespace=live_servicebus_config['hostname'], shared_access_key_name=live_servicebus_config['key_name'], shared_access_key_value=live_servicebus_config['access_key'], debug=False) queue_client = client.get_queue(standard_queue) def message_content(): for i in range(5): yield "Message no. {}".format(i) with queue_client.get_sender() as sender: message = BatchMessage(message_content()) sender.send(message) with queue_client.get_receiver() as receiver: messages = receiver.fetch_next(timeout=10) recv = True while recv: recv = receiver.fetch_next(timeout=10) messages.extend(recv) assert len(messages) == 5 for m in messages: print_message(m) m.complete()
def message_send_process(sb_config, queue, endtime): def message_batch(): for i in range(5): yield "Stress Test message no. {}".format(i) client = ServiceBusClient(service_namespace=sb_config['hostname'], shared_access_key_name=sb_config['key_name'], shared_access_key_value=sb_config['access_key'], debug=True) total = 0 queue_client = client.get_queue(queue) with queue_client.get_sender() as sender: while endtime > datetime.now(): message = BatchMessage(message_batch()) sender.send(message) total += 5 time.sleep(0.01) return total