def test_channel(): channel = Channel(uri=URI, exchange=EXCHANGE) subscription = Subscription(channel) subscription.subscribe("MyTopic.Sub.Sub") struct = Struct() struct.fields["value"].number_value = 666.0 sent = Message(struct) sent.reply_to = subscription sent.created_at = int(1000 * now()) / 1000.0 sent.timeout = 1.0 sent.topic = "MyTopic.Sub.Sub" channel.publish(message=sent) received = channel.consume(timeout=1.0) assert sent.reply_to == received.reply_to assert sent.subscription_id == received.subscription_id assert sent.content_type == received.content_type assert sent.body == received.body assert sent.status == received.status assert sent.topic == received.topic assert sent.correlation_id == received.correlation_id assert sent.timeout == received.timeout assert sent.metadata == received.metadata assert sent.created_at == received.created_at assert str(sent) == str(received) struct2 = received.unpack(Struct) assert str(struct) == str(struct2) assert struct == struct2 channel.close()
def test_amqp_conversion(): sent = Message() sent.created_at = int(now() * 1000) / 1000.0 sent.reply_to = "reply_to" sent.subscription_id = "subscription_id" sent.content_type = ContentType.JSON sent.body = '{"field":"value"}'.encode('latin1') sent.topic = "MyTopic" sent.status = Status( code=StatusCode.FAILED_PRECONDITION, why="Bad Args...", ) sent.metadata = { 'x-b3-sampled': '1', 'x-b3-traceid': 'f047c6f208eb36ab', 'x-b3-flags': '0', 'x-b3-spanid': 'ef81a2f9c261473d', 'x-b3-parentspanid': '0000000000000000' } body = sent.body amqp_message = amqp.Message(channel=None, body=body, **WireV1.to_amqp_properties(sent)) amqp_message.delivery_info = { "routing_key": sent.topic, "consumer_tag": sent.subscription_id, } received = WireV1.from_amqp_message(amqp_message) print(sent.__str__(), received.__str__()) assert str(sent) == str(received) assert sent.created_at == received.created_at assert sent.reply_to == received.reply_to assert sent.subscription_id == received.subscription_id assert sent.content_type == received.content_type assert sent.body == received.body assert sent.status == received.status assert sent.topic == received.topic assert sent.correlation_id == received.correlation_id assert sent.timeout == received.timeout assert sent.metadata == received.metadata