Skip to content

Commit 30d46d5

Browse files
committed
refactor(q10): harmonize enum state values across Q10 modes
1 parent 0c2c781 commit 30d46d5

File tree

2 files changed

+41
-11
lines changed

2 files changed

+41
-11
lines changed

roborock/data/b01_q10/b01_q10_code_mappings.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class YXDeviceState(RoborockModeEnum):
171171
REMOTEING_STATE = "remote_control", 7
172172
CHARGING_STATE = "charging", 8
173173
PAUSE_STATE = "paused", 10
174-
FAULT_STATE = "fault", 12
174+
FAULT_STATE = "error", 12
175175
UPGRADE_STATE = "updating", 14
176176
DUSTING = "dusting", 22
177177
CREATING_MAP_STATE = "creating_map", 29
@@ -187,27 +187,27 @@ class YXDeviceState(RoborockModeEnum):
187187
class YXBackType(RoborockModeEnum):
188188
UNKNOWN = "unknown", -1
189189
IDLE = "idle", 0
190-
BACK_DUSTING = "backdusting", 4
191-
BACK_CHARGING = "backcharging", 5
190+
BACK_DUSTING = "back_dusting", 4
191+
BACK_CHARGING = "back_charging", 5
192192

193193

194194
class YXDeviceWorkMode(RoborockModeEnum):
195195
UNKNOWN = "unknown", -1
196-
BOTH_WORK = "bothwork", 1
197-
ONLY_SWEEP = "onlysweep", 2
198-
ONLY_MOP = "onlymop", 3
196+
BOTH_WORK = "vac_and_mop", 1
197+
ONLY_SWEEP = "vacuum", 2
198+
ONLY_MOP = "mop", 3
199199
CUSTOMIZED = "customized", 4
200-
SAVE_WORRY = "saveworry", 5
201-
SWEEP_MOP = "sweepmop", 6
200+
SAVE_WORRY = "save_worry", 5
201+
SWEEP_MOP = "sweep_mop", 6
202202

203203

204204
class YXDeviceCleanTask(RoborockModeEnum):
205205
UNKNOWN = "unknown", -1
206206
IDLE = "idle", 0
207207
SMART = "smart", 1
208208
ELECTORAL = "electoral", 2
209-
DIVIDE_AREAS = "divideareas", 3
210-
CREATING_MAP = "creatingmap", 4
209+
DIVIDE_AREAS = "divide_areas", 3
210+
CREATING_MAP = "creating_map", 4
211211
PART = "part", 5
212212

213213

tests/data/test_code_mappings.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
import pytest
66

77
from roborock import HomeDataProduct, RoborockCategory
8-
from roborock.data.b01_q10.b01_q10_code_mappings import B01_Q10_DP
8+
from roborock.data.b01_q10.b01_q10_code_mappings import (
9+
B01_Q10_DP,
10+
YXBackType,
11+
YXDeviceCleanTask,
12+
YXDeviceState,
13+
YXDeviceWorkMode,
14+
)
915

1016

1117
def test_from_code() -> None:
@@ -89,3 +95,27 @@ def test_homedata_product_unknown_category():
8995
product = HomeDataProduct.from_dict(data)
9096
assert product.id == "unknown_cat_id"
9197
assert product.category == RoborockCategory.UNKNOWN
98+
def test_yx_device_state_fault_uses_error_value() -> None:
99+
"""Test YXDeviceState uses a cross-device-consistent error label."""
100+
assert YXDeviceState.FAULT_STATE.value == "error"
101+
102+
103+
def test_yx_back_type_values_are_readable() -> None:
104+
"""Test YXBackType values are exposed as readable snake_case."""
105+
assert YXBackType.BACK_DUSTING.value == "back_dusting"
106+
assert YXBackType.BACK_CHARGING.value == "back_charging"
107+
108+
109+
def test_yx_device_work_mode_values_are_readable() -> None:
110+
"""Test YXDeviceWorkMode values align with readable cleaning labels."""
111+
assert YXDeviceWorkMode.BOTH_WORK.value == "vac_and_mop"
112+
assert YXDeviceWorkMode.ONLY_SWEEP.value == "vacuum"
113+
assert YXDeviceWorkMode.ONLY_MOP.value == "mop"
114+
assert YXDeviceWorkMode.SAVE_WORRY.value == "save_worry"
115+
assert YXDeviceWorkMode.SWEEP_MOP.value == "sweep_mop"
116+
117+
118+
def test_yx_device_clean_task_values_are_readable() -> None:
119+
"""Test YXDeviceCleanTask values are exposed as readable snake_case."""
120+
assert YXDeviceCleanTask.DIVIDE_AREAS.value == "divide_areas"
121+
assert YXDeviceCleanTask.CREATING_MAP.value == "creating_map"

0 commit comments

Comments
 (0)