Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions roborock/data/b01_q10/b01_q10_code_mappings.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,24 +164,24 @@ class YXCleanType(RoborockModeEnum):

class YXDeviceState(RoborockModeEnum):
UNKNOWN = "unknown", -1
SLEEP_STATE = "sleepstate", 2
STANDBY_STATE = "standbystate", 3
CLEANING_STATE = "cleaningstate", 5
TO_CHARGE_STATE = "tochargestate", 6
REMOTEING_STATE = "remoteingstate", 7
CHARGING_STATE = "chargingstate", 8
PAUSE_STATE = "pausestate", 10
FAULT_STATE = "faultstate", 12
UPGRADE_STATE = "upgradestate", 14
SLEEP_STATE = "sleeping", 2
STANDBY_STATE = "standby", 3
CLEANING_STATE = "cleaning", 5
TO_CHARGE_STATE = "going_to_charge", 6
REMOTEING_STATE = "remote_control", 7
CHARGING_STATE = "charging", 8
PAUSE_STATE = "paused", 10
FAULT_STATE = "fault", 12
UPGRADE_STATE = "updating", 14
DUSTING = "dusting", 22
CREATING_MAP_STATE = "creatingmapstate", 29
MAP_SAVE_STATE = "mapsavestate", 99
RE_LOCATION_STATE = "relocationstate", 101
ROBOT_SWEEPING = "robotsweeping", 102
ROBOT_MOPING = "robotmoping", 103
ROBOT_SWEEP_AND_MOPING = "robotsweepandmoping", 104
ROBOT_TRANSITIONING = "robottransitioning", 105
ROBOT_WAIT_CHARGE = "robotwaitcharge", 108
CREATING_MAP_STATE = "creating_map", 29
MAP_SAVE_STATE = "saving_map", 99
RE_LOCATION_STATE = "relocating", 101
ROBOT_SWEEPING = "sweeping", 102
ROBOT_MOPING = "mopping", 103
ROBOT_SWEEP_AND_MOPING = "sweep_and_mop", 104
ROBOT_TRANSITIONING = "transitioning", 105
ROBOT_WAIT_CHARGE = "waiting_to_charge", 108


class YXBackType(RoborockModeEnum):
Expand Down
38 changes: 38 additions & 0 deletions tests/data/b01_q10/test_b01_q10_code_mappings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"""Test cases for B01 Q10 code mappings."""

from roborock.data.b01_q10 import YXDeviceState


def test_q10_status_values_are_canonical() -> None:
"""Q10 status enum values should expose canonical names."""
expected_values = {
YXDeviceState.UNKNOWN: "unknown",
YXDeviceState.SLEEP_STATE: "sleeping",
YXDeviceState.STANDBY_STATE: "standby",
YXDeviceState.CLEANING_STATE: "cleaning",
YXDeviceState.TO_CHARGE_STATE: "going_to_charge",
YXDeviceState.REMOTEING_STATE: "remote_control",
YXDeviceState.CHARGING_STATE: "charging",
YXDeviceState.PAUSE_STATE: "paused",
YXDeviceState.FAULT_STATE: "fault",
YXDeviceState.UPGRADE_STATE: "updating",
YXDeviceState.DUSTING: "dusting",
YXDeviceState.CREATING_MAP_STATE: "creating_map",
YXDeviceState.MAP_SAVE_STATE: "saving_map",
YXDeviceState.RE_LOCATION_STATE: "relocating",
YXDeviceState.ROBOT_SWEEPING: "sweeping",
YXDeviceState.ROBOT_MOPING: "mopping",
YXDeviceState.ROBOT_SWEEP_AND_MOPING: "sweep_and_mop",
YXDeviceState.ROBOT_TRANSITIONING: "transitioning",
YXDeviceState.ROBOT_WAIT_CHARGE: "waiting_to_charge",
}

assert {state: state.value for state in expected_values} == expected_values
assert all(not value.endswith("state") for value in expected_values.values())


def test_q10_status_codes_map_to_canonical_values() -> None:
"""Code-based mapping should return canonical status values."""
assert YXDeviceState.from_code(5) is YXDeviceState.CLEANING_STATE
assert YXDeviceState.from_code(8) is YXDeviceState.CHARGING_STATE
assert YXDeviceState.from_code(14) is YXDeviceState.UPGRADE_STATE
Loading