Coverage for amqtt/mqtt/unsuback.py: 88%
20 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-08-12 14:35 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-08-12 14:35 +0000
1from typing_extensions import Self
3from amqtt.errors import AMQTTError
4from amqtt.mqtt.packet import UNSUBACK, MQTTFixedHeader, MQTTPacket, PacketIdVariableHeader
7class UnsubackPacket(MQTTPacket[PacketIdVariableHeader, None, MQTTFixedHeader]):
8 VARIABLE_HEADER = PacketIdVariableHeader
9 PAYLOAD = None
11 def __init__(
12 self,
13 fixed: MQTTFixedHeader | None = None,
14 variable_header: PacketIdVariableHeader | None = None,
15 payload: None = None,
16 ) -> None:
17 if fixed is None:
18 header = MQTTFixedHeader(UNSUBACK, 0x00)
19 else:
20 if fixed.packet_type is not UNSUBACK: 20 ↛ 21line 20 didn't jump to line 21 because the condition on line 20 was never true
21 msg = f"Invalid fixed packet type {fixed.packet_type} for UnsubackPacket init"
22 raise AMQTTError(
23 msg,
24 )
25 header = fixed
27 super().__init__(header)
28 self.variable_header = variable_header
29 self.payload = payload
31 @classmethod
32 def build(cls, packet_id: int) -> Self:
33 variable_header = PacketIdVariableHeader(packet_id)
34 return cls(variable_header=variable_header)