Coverage for tests/tests_rf/virtual_rf/helpers.py: 0%
13 statements
« prev ^ index » next coverage.py v7.11.3, created at 2026-01-05 21:46 +0100
« prev ^ index » next coverage.py v7.11.3, created at 2026-01-05 21:46 +0100
1#!/usr/bin/env python3
2"""RAMSES RF - a RAMSES-II protocol decoder & analyser."""
4from ramses_rf import Device
5from ramses_rf.binding_fsm import BindContext
6from ramses_rf.device import Fakeable
9def ensure_fakeable(dev: Device, make_fake: bool = True) -> None:
10 """If a Device is not Fakeable (i.e. Fakeable, not _faked), make it so."""
12 class _Fakeable(dev.__class__, Fakeable): # type: ignore[misc, name-defined]
13 pass
15 if isinstance(dev, Fakeable | _Fakeable):
16 return
18 dev.__class__ = _Fakeable
19 assert isinstance(dev, Fakeable)
21 setattr(dev, "_bind_context", BindContext(dev)) # noqa: B010
23 if make_fake:
24 dev._make_fake()