Skip to content

Commit efd350c

Browse files
committed
Update tests
1 parent df6c4bb commit efd350c

2 files changed

Lines changed: 53 additions & 12 deletions

File tree

sdk/eventhub/azure-eventhub/tests/livetest/synctests/test_send.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,3 +723,39 @@ def test_send_long_wait_idle_timeout(auth_credential_receivers, keep_alive, uamq
723723
else:
724724
with pytest.raises(AMQPConnectionError):
725725
sender._send_event_data()
726+
727+
728+
@pytest.mark.liveTest
729+
def test_send_and_receive_described_types(auth_credential_receivers, uamqp_transport, timeout_factor, client_args):
730+
if uamqp_transport:
731+
pytest.skip("Described type preservation only applies to pyamqp transport")
732+
733+
fully_qualified_namespace, eventhub_name, credential, receivers = auth_credential_receivers
734+
client = EventHubProducerClient(
735+
fully_qualified_namespace=fully_qualified_namespace,
736+
eventhub_name=eventhub_name,
737+
credential=credential(),
738+
uamqp_transport=uamqp_transport,
739+
**client_args
740+
)
741+
742+
with client:
743+
# A tuple is encoded as a described type: (descriptor, value)
744+
described_value = (12345, "TEST")
745+
message = AmqpAnnotatedMessage(value_body=described_value)
746+
client.send_event(message)
747+
748+
timeout = 10 * timeout_factor
749+
received = []
750+
for r in receivers:
751+
received.extend(r.receive_message_batch(timeout=timeout))
752+
753+
assert len(received) >= 1
754+
755+
for msg in received:
756+
if msg.value is not None and hasattr(msg.value, "descriptor"):
757+
assert msg.value.descriptor == 12345
758+
assert msg.value == b"TEST"
759+
break
760+
else:
761+
pytest.fail("Did not receive message with described value body")

sdk/eventhub/azure-eventhub/tests/pyamqp_tests/synctests/test_send_receive_pyamqp.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,11 @@ def test_described(live_eventhub):
6767
live_eventhub["hostname"], live_eventhub["event_hub"], live_eventhub["partition"]
6868
)
6969

70-
out = bytearray();
71-
encode_described(out, (12345, "TEST"))
72-
73-
message = Message(value=out)
70+
# A tuple is encoded as a described type: (descriptor, value)
71+
message = Message(value=(12345, "TEST"))
7472

7573
with SendClient(
76-
live_eventhub["hostname"], target, auth=sas_auth, debug=True, transport_type=TransportType.Amqp
74+
live_eventhub["hostname"], target, auth=sas_auth, debug=True, transport_type=TransportType.Amqp
7775
) as send_client:
7876
send_client.send_message(message)
7977

@@ -85,13 +83,20 @@ def test_described(live_eventhub):
8583
)
8684

8785
with ReceiveClient(
88-
live_eventhub["hostname"],
89-
source,
90-
auth=sas_auth,
91-
debug=False,
92-
timeout=500,
93-
prefetch=1,
94-
transport_type=TransportType.Amqp,
86+
live_eventhub["hostname"],
87+
source,
88+
auth=sas_auth,
89+
debug=False,
90+
timeout=500,
91+
prefetch=1,
92+
transport_type=TransportType.Amqp,
9593
) as receive_client:
9694
messages = receive_client.receive_message_batch(max_batch_size=1)
9795
assert len(messages) > 0
96+
97+
msg = messages[0]
98+
# The value body should be decoded as a described type with descriptor preserved
99+
assert msg.value is not None
100+
assert hasattr(msg.value, "descriptor")
101+
assert msg.value.descriptor == 12345
102+
assert msg.value == b"TEST"

0 commit comments

Comments
 (0)