Skip to content

Commit cee616f

Browse files
committed
test(aio-pika): verify publish works with an empty routing_key
Signed-off-by: Varsha GS <[email protected]>
1 parent 6d4489c commit cee616f

File tree

2 files changed

+20
-37
lines changed

2 files changed

+20
-37
lines changed

src/instana/instrumentation/aio_pika.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async def publish_with_instana(
4343
) -> Optional["ConfirmationFrameType"]:
4444
if tracing_is_off():
4545
return await wrapped(*args, **kwargs)
46-
46+
4747
tracer, parent_span, _ = get_tracer_tuple()
4848
parent_context = parent_span.get_span_context() if parent_span else None
4949

tests/clients/test_aio_pika.py

Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ async def publish_message(self, params_combination: str = "both_args") -> None:
5656
elif params_combination == "arg_kwarg":
5757
args = (message,)
5858
kwargs = {"routing_key": queue_name}
59+
elif params_combination == "arg_kwarg_empty_key":
60+
args = (message,)
61+
kwargs = {"routing_key": ""}
5962
else:
6063
# params_combination == "both_args"
6164
args = (message, queue_name)
@@ -102,6 +105,15 @@ async def on_message(msg):
102105
await queue.consume(on_message)
103106
await asyncio.sleep(1) # Wait to ensure the message is processed
104107

108+
def assert_span_info(self, rabbitmq_span: "ReadableSpan", sort: str, key: str = "test.queue") -> None:
109+
assert rabbitmq_span.data["rabbitmq"]["exchange"] == "test.exchange"
110+
assert rabbitmq_span.data["rabbitmq"]["sort"] == sort
111+
assert rabbitmq_span.data["rabbitmq"]["address"]
112+
assert rabbitmq_span.data["rabbitmq"]["key"] == key
113+
assert rabbitmq_span.stack
114+
assert isinstance(rabbitmq_span.stack, list)
115+
assert len(rabbitmq_span.stack) > 0
116+
105117
@pytest.mark.parametrize(
106118
"params_combination",
107119
["both_args", "both_kwargs", "arg_kwarg"],
@@ -127,13 +139,8 @@ def test_basic_publish(self, params_combination) -> None:
127139
assert not rabbitmq_span.ec
128140

129141
# Span attributes
130-
assert rabbitmq_span.data["rabbitmq"]["exchange"] == "test.exchange"
131-
assert rabbitmq_span.data["rabbitmq"]["sort"] == "publish"
132-
assert rabbitmq_span.data["rabbitmq"]["address"]
133-
assert rabbitmq_span.data["rabbitmq"]["key"] == "test.queue"
134-
assert rabbitmq_span.stack
135-
assert isinstance(rabbitmq_span.stack, list)
136-
assert len(rabbitmq_span.stack) > 0
142+
key = "" if params_combination == "arg_kwarg_empty_key" else self.queue_name
143+
self.assert_span_info(rabbitmq_span, "publish", key)
137144

138145
def test_basic_publish_as_root_exit_span(self) -> None:
139146
agent.options.allow_exit_as_root = True
@@ -151,13 +158,7 @@ def test_basic_publish_as_root_exit_span(self) -> None:
151158
assert not rabbitmq_span.ec
152159

153160
# Span attributes
154-
assert rabbitmq_span.data["rabbitmq"]["exchange"] == "test.exchange"
155-
assert rabbitmq_span.data["rabbitmq"]["sort"] == "publish"
156-
assert rabbitmq_span.data["rabbitmq"]["address"]
157-
assert rabbitmq_span.data["rabbitmq"]["key"] == "test.queue"
158-
assert rabbitmq_span.stack
159-
assert isinstance(rabbitmq_span.stack, list)
160-
assert len(rabbitmq_span.stack) > 0
161+
self.assert_span_info(rabbitmq_span, "publish")
161162

162163
@pytest.mark.parametrize(
163164
"connect_method",
@@ -189,17 +190,8 @@ def test_basic_consume(self, connect_method) -> None:
189190
assert not test_span.ec
190191

191192
# Span attributes
192-
def assert_span_info(rabbitmq_span: "ReadableSpan", sort: str) -> None:
193-
assert rabbitmq_span.data["rabbitmq"]["exchange"] == "test.exchange"
194-
assert rabbitmq_span.data["rabbitmq"]["sort"] == sort
195-
assert rabbitmq_span.data["rabbitmq"]["address"]
196-
assert rabbitmq_span.data["rabbitmq"]["key"] == "test.queue"
197-
assert rabbitmq_span.stack
198-
assert isinstance(rabbitmq_span.stack, list)
199-
assert len(rabbitmq_span.stack) > 0
200-
201-
assert_span_info(rabbitmq_publisher_span, "publish")
202-
assert_span_info(rabbitmq_consumer_span, "consume")
193+
self.assert_span_info(rabbitmq_publisher_span, "publish")
194+
self.assert_span_info(rabbitmq_consumer_span, "consume")
203195

204196
@pytest.mark.parametrize(
205197
"connect_method",
@@ -231,14 +223,5 @@ def test_consume_with_exception(self, connect_method) -> None:
231223
assert not test_span.ec
232224

233225
# Span attributes
234-
def assert_span_info(rabbitmq_span: "ReadableSpan", sort: str) -> None:
235-
assert rabbitmq_span.data["rabbitmq"]["exchange"] == "test.exchange"
236-
assert rabbitmq_span.data["rabbitmq"]["sort"] == sort
237-
assert rabbitmq_span.data["rabbitmq"]["address"]
238-
assert rabbitmq_span.data["rabbitmq"]["key"] == "test.queue"
239-
assert rabbitmq_span.stack
240-
assert isinstance(rabbitmq_span.stack, list)
241-
assert len(rabbitmq_span.stack) > 0
242-
243-
assert_span_info(rabbitmq_publisher_span, "publish")
244-
assert_span_info(rabbitmq_consumer_span, "consume")
226+
self.assert_span_info(rabbitmq_publisher_span, "publish")
227+
self.assert_span_info(rabbitmq_consumer_span, "consume")

0 commit comments

Comments
 (0)