Skip to content

Commit c555f0f

Browse files
authored
fix: serialize TestClient rpc output to mock the real message (#1452)
1 parent 987d069 commit c555f0f

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

faststream/broker/core/usecase.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ async def publish(
333333
**kwargs: Any,
334334
) -> Optional[Any]:
335335
"""Publish message directly."""
336-
assert producer, NOT_CONNECTED_YET # nosec B101)
336+
assert producer, NOT_CONNECTED_YET # nosec B101
337337

338338
publish: "AsyncFunc" = producer.publish
339339
for m in self._middlewares:

faststream/testing/broker.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from unittest.mock import AsyncMock, MagicMock
1717

1818
from faststream.broker.core.usecase import BrokerUsecase
19+
from faststream.broker.message import StreamMessage, decode_message, encode_message
1920
from faststream.broker.middlewares.logging import CriticalLogMiddleware
2021
from faststream.broker.wrapper.call import HandlerCallWrapper
2122
from faststream.testing.app import TestApp
@@ -212,6 +213,9 @@ async def call_handler(
212213
result = await handler.consume(message)
213214

214215
if rpc:
215-
return result
216+
message_body, content_type = encode_message(result)
217+
msg_to_publish = StreamMessage(raw_message=None, body=message_body, content_type=content_type)
218+
consumed_data = decode_message(msg_to_publish)
219+
return consumed_data
216220

217221
return None

0 commit comments

Comments
 (0)