Skip to content

Commit e4b8994

Browse files
committed
refactor(testing): use enum keys/values directly for DEFAULT_DYAD_STATUS, DEFAULT_ZEO_STATUS, and simulator status params
1 parent 0a0c144 commit e4b8994

1 file changed

Lines changed: 36 additions & 36 deletions

File tree

roborock/testing/a01_simulator.py

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -77,37 +77,37 @@
7777
)
7878

7979
# Dyad protocol default values
80-
DEFAULT_DYAD_STATUS: dict[int, Any] = {
81-
int(RoborockDyadDataProtocol.STATUS): RoborockDyadStateCode.charging.value,
82-
int(RoborockDyadDataProtocol.POWER): 100,
83-
int(RoborockDyadDataProtocol.SUCTION): DyadSuction.l1.value,
84-
int(RoborockDyadDataProtocol.WATER_LEVEL): DyadWaterLevel.l1.value,
85-
int(RoborockDyadDataProtocol.CLEAN_MODE): DyadCleanMode.auto.value,
86-
int(RoborockDyadDataProtocol.AUTO_DRY): 1,
87-
int(RoborockDyadDataProtocol.VOLUME_SET): 80,
88-
int(RoborockDyadDataProtocol.ERROR): DyadError.none.value,
89-
int(RoborockDyadDataProtocol.TOTAL_RUN_TIME): 120,
90-
int(RoborockDyadDataProtocol.SILENT_MODE): 0,
80+
DEFAULT_DYAD_STATUS: dict[enum.Enum, Any] = {
81+
RoborockDyadDataProtocol.STATUS: RoborockDyadStateCode.charging,
82+
RoborockDyadDataProtocol.POWER: 100,
83+
RoborockDyadDataProtocol.SUCTION: DyadSuction.l1,
84+
RoborockDyadDataProtocol.WATER_LEVEL: DyadWaterLevel.l1,
85+
RoborockDyadDataProtocol.CLEAN_MODE: DyadCleanMode.auto,
86+
RoborockDyadDataProtocol.AUTO_DRY: 1,
87+
RoborockDyadDataProtocol.VOLUME_SET: 80,
88+
RoborockDyadDataProtocol.ERROR: DyadError.none,
89+
RoborockDyadDataProtocol.TOTAL_RUN_TIME: 120,
90+
RoborockDyadDataProtocol.SILENT_MODE: 0,
9191
}
9292

9393
# Zeo protocol default values
94-
DEFAULT_ZEO_STATUS: dict[int, Any] = {
95-
int(RoborockZeoProtocol.STATE): ZeoState.standby.value,
96-
int(RoborockZeoProtocol.MODE): ZeoMode.wash_and_dry.value,
97-
int(RoborockZeoProtocol.PROGRAM): ZeoProgram.standard.value,
98-
int(RoborockZeoProtocol.TEMP): ZeoTemperature.medium.value,
99-
int(RoborockZeoProtocol.RINSE_TIMES): ZeoRinse.low.value,
100-
int(RoborockZeoProtocol.SPIN_LEVEL): ZeoSpin.high.value,
101-
int(RoborockZeoProtocol.DRYING_MODE): ZeoDryingMode.store.value,
102-
int(RoborockZeoProtocol.DETERGENT_EMPTY): False,
103-
int(RoborockZeoProtocol.SOFTENER_EMPTY): False,
104-
int(RoborockZeoProtocol.SOUND_SET): True,
105-
int(RoborockZeoProtocol.ERROR): ZeoError.none.value,
106-
int(RoborockZeoProtocol.WASHING_LEFT): 0,
107-
int(RoborockZeoProtocol.COUNTDOWN): 0,
108-
int(RoborockZeoProtocol.TIMES_AFTER_CLEAN): 0,
109-
int(RoborockZeoProtocol.DETERGENT_TYPE): ZeoDetergentType.low.value,
110-
int(RoborockZeoProtocol.SOFTENER_TYPE): ZeoSoftenerType.low.value,
94+
DEFAULT_ZEO_STATUS: dict[enum.Enum, Any] = {
95+
RoborockZeoProtocol.STATE: ZeoState.standby,
96+
RoborockZeoProtocol.MODE: ZeoMode.wash_and_dry,
97+
RoborockZeoProtocol.PROGRAM: ZeoProgram.standard,
98+
RoborockZeoProtocol.TEMP: ZeoTemperature.medium,
99+
RoborockZeoProtocol.RINSE_TIMES: ZeoRinse.low,
100+
RoborockZeoProtocol.SPIN_LEVEL: ZeoSpin.high,
101+
RoborockZeoProtocol.DRYING_MODE: ZeoDryingMode.store,
102+
RoborockZeoProtocol.DETERGENT_EMPTY: False,
103+
RoborockZeoProtocol.SOFTENER_EMPTY: False,
104+
RoborockZeoProtocol.SOUND_SET: True,
105+
RoborockZeoProtocol.ERROR: ZeoError.none,
106+
RoborockZeoProtocol.WASHING_LEFT: 0,
107+
RoborockZeoProtocol.COUNTDOWN: 0,
108+
RoborockZeoProtocol.TIMES_AFTER_CLEAN: 0,
109+
RoborockZeoProtocol.DETERGENT_TYPE: ZeoDetergentType.low,
110+
RoborockZeoProtocol.SOFTENER_TYPE: ZeoSoftenerType.low,
111111
}
112112

113113

@@ -126,13 +126,13 @@ def __init__(
126126
duid: str,
127127
device_info: HomeDataDevice,
128128
product: HomeDataProduct,
129-
status: dict[Any, Any] | None = None,
129+
status: dict[enum.Enum, Any] | None = None,
130130
):
131131
super().__init__(duid, device_info, product, has_local_channel=False)
132132
raw_status = status or {}
133133
self.status: dict[int, Any] = {int(_extract_int_value(k)): _extract_int_value(v) for k, v in raw_status.items()}
134134

135-
def set_protocol_value(self, protocol: Any, value: Any, push: bool = False) -> None:
135+
def set_protocol_value(self, protocol: enum.Enum | int, value: Any, push: bool = False) -> None:
136136
"""Set a protocol value in the simulator status.
137137
138138
Accepts protocol enums (e.g. RoborockDyadDataProtocol, RoborockZeoProtocol)
@@ -205,17 +205,17 @@ class DyadSimulator(A01DeviceSimulator):
205205
def __init__(
206206
self,
207207
duid: str = "fake_dyad_duid",
208-
status: dict[Any, Any] | None = None,
208+
status: dict[enum.Enum, Any] | None = None,
209209
device_info: HomeDataDevice | None = None,
210210
product: HomeDataProduct | None = None,
211211
):
212212
product = product or DEFAULT_DYAD_PRODUCT
213213
if device_info is None:
214214
device_info = replace(DEFAULT_DYAD_DEVICE_INFO, duid=duid, name=f"Dyad {duid}")
215-
merged_status: dict[int, Any] = copy.deepcopy(DEFAULT_DYAD_STATUS)
215+
merged_status: dict[enum.Enum, Any] = copy.deepcopy(DEFAULT_DYAD_STATUS)
216216
if status:
217217
for k, v in status.items():
218-
merged_status[int(_extract_int_value(k))] = _extract_int_value(v)
218+
merged_status[k] = v
219219

220220
super().__init__(duid, device_info, product, merged_status)
221221

@@ -246,17 +246,17 @@ class ZeoSimulator(A01DeviceSimulator):
246246
def __init__(
247247
self,
248248
duid: str = "fake_zeo_duid",
249-
status: dict[Any, Any] | None = None,
249+
status: dict[enum.Enum, Any] | None = None,
250250
device_info: HomeDataDevice | None = None,
251251
product: HomeDataProduct | None = None,
252252
):
253253
product = product or DEFAULT_ZEO_PRODUCT
254254
if device_info is None:
255255
device_info = replace(DEFAULT_ZEO_DEVICE_INFO, duid=duid, name=f"Zeo {duid}")
256-
merged_status: dict[int, Any] = copy.deepcopy(DEFAULT_ZEO_STATUS)
256+
merged_status: dict[enum.Enum, Any] = copy.deepcopy(DEFAULT_ZEO_STATUS)
257257
if status:
258258
for k, v in status.items():
259-
merged_status[int(_extract_int_value(k))] = _extract_int_value(v)
259+
merged_status[k] = v
260260

261261
super().__init__(duid, device_info, product, merged_status)
262262

0 commit comments

Comments
 (0)