Coverage for kv4p/messages/window_update.py: 75%

12 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-13 13:27 +0000

1"""Flow-control window update.""" 

2 

3from __future__ import annotations 

4 

5import struct 

6from dataclasses import dataclass 

7 

8_WINDOW_UPDATE = struct.Struct("<I") 

9 

10 

11@dataclass(frozen=True, slots=True) 

12class WindowUpdate: 

13 """Flow-control window update.""" 

14 

15 size: int 

16 

17 @classmethod 

18 def from_bytes(cls, payload: bytes) -> WindowUpdate: 

19 """Parse WindowUpdate.""" 

20 if len(payload) < _WINDOW_UPDATE.size: 

21 raise ValueError(f"WindowUpdate payload too short: {len(payload)}") 

22 return cls(_WINDOW_UPDATE.unpack(payload[: _WINDOW_UPDATE.size])[0])