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

1from aio_pika import IncomingMessage 

2 

3from faststream.message import StreamMessage 

4 

5 

6class RabbitMessage(StreamMessage[IncomingMessage]): 

7 """A message class for working with RabbitMQ messages. 

8 

9 This class extends `StreamMessage` to provide additional functionality for acknowledging, rejecting, 

10 or nack-ing RabbitMQ messages. 

11 """ 

12 

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) 

23 

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) 

35 

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)