Coverage for src/bluetooth_sig/gatt/characteristics/cooking_zone_desired_cooking_conditions.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.14.3, created at 2026-06-28 01:26 +0000

1"""Cooking Zone Desired Cooking Conditions characteristic (0x2C2A).""" 

2 

3from __future__ import annotations 

4 

5from ..constants import SIZE_UINT16 

6from ..context import CharacteristicContext 

7from .base import BaseCharacteristic 

8from .cooking_common import CookingConditionsData, encode_cooking_conditions, parse_cooking_conditions 

9 

10 

11class CookingZoneDesiredCookingConditionsCharacteristic(BaseCharacteristic[CookingConditionsData]): 

12 """Cooking Zone Desired Cooking Conditions characteristic (0x2C2A). 

13 

14 org.bluetooth.characteristic.cooking_zone_desired_cooking_conditions 

15 """ 

16 

17 min_length = SIZE_UINT16 

18 allow_variable_length = True 

19 

20 def _decode_value( 

21 self, data: bytearray, ctx: CharacteristicContext | None = None, *, validate: bool = True 

22 ) -> CookingConditionsData: 

23 return parse_cooking_conditions(data) 

24 

25 def _encode_value(self, data: CookingConditionsData) -> bytearray: 

26 return encode_cooking_conditions(data)