Coverage for faststream / rabbit / message.py: 92%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-08 01:48 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-08 01:48 +0000
1from aio_pika import IncomingMessage
3from faststream.message import StreamMessage
6class RabbitMessage(StreamMessage[IncomingMessage]):
7 """A message class for working with RabbitMQ messages.
9 This class extends `StreamMessage` to provide additional functionality for acknowledging, rejecting,
10 or nack-ing RabbitMQ messages.
11 """
13 async def ack(
14 self,
15 multiple: bool = False,
16 ) -> None:
17 """Acknowledge the RabbitMQ message."""
18 pika_message = self.raw_message
19 await super().ack()
20 if pika_message.locked:
21 return
22 await pika_message.ack(multiple=multiple)
24 async def nack(
25 self,
26 multiple: bool = False,
27 requeue: bool = True,
28 ) -> None:
29 """Negative Acknowledgment of the RabbitMQ message."""
30 pika_message = self.raw_message
31 await super().nack()
32 if pika_message.locked: 32 ↛ 33line 32 didn't jump to line 33 because the condition on line 32 was never true
33 return
34 await pika_message.nack(multiple=multiple, requeue=requeue)
36 async def reject(
37 self,
38 requeue: bool = False,
39 ) -> None:
40 """Reject the RabbitMQ message."""
41 pika_message = self.raw_message
42 await super().reject()
43 if pika_message.locked:
44 return
45 await pika_message.reject(requeue=requeue)