|
1 | 1 | """Test cases for B01 Q10 code mappings.""" |
2 | 2 |
|
| 3 | +import pytest |
| 4 | + |
3 | 5 | from roborock.data.b01_q10 import YXDeviceState |
4 | 6 |
|
5 | 7 |
|
6 | | -def test_q10_status_values_are_canonical() -> None: |
| 8 | +@pytest.mark.parametrize( |
| 9 | + "state, string", |
| 10 | + [ |
| 11 | + (YXDeviceState.UNKNOWN, "unknown"), |
| 12 | + (YXDeviceState.IDLE, "idle"), |
| 13 | + (YXDeviceState.CHARGING, "charging"), |
| 14 | + (YXDeviceState.CLEANING, "cleaning"), |
| 15 | + (YXDeviceState.SLEEPING, "sleeping"), |
| 16 | + (YXDeviceState.UPDATING, "updating"), |
| 17 | + (YXDeviceState.RETURNING_HOME, "returning_home"), |
| 18 | + ], |
| 19 | +) |
| 20 | +def test_q10_status_values_are_canonical(state: YXDeviceState, string: str) -> None: |
7 | 21 | """Q10 status enum values should expose canonical names.""" |
8 | | - expected_values = { |
9 | | - YXDeviceState.UNKNOWN: "unknown", |
10 | | - YXDeviceState.SLEEP_STATE: "sleeping", |
11 | | - YXDeviceState.STANDBY_STATE: "standby", |
12 | | - YXDeviceState.CLEANING_STATE: "cleaning", |
13 | | - YXDeviceState.TO_CHARGE_STATE: "going_to_charge", |
14 | | - YXDeviceState.REMOTEING_STATE: "remote_control", |
15 | | - YXDeviceState.CHARGING_STATE: "charging", |
16 | | - YXDeviceState.PAUSE_STATE: "paused", |
17 | | - YXDeviceState.FAULT_STATE: "fault", |
18 | | - YXDeviceState.UPGRADE_STATE: "updating", |
19 | | - YXDeviceState.DUSTING: "dusting", |
20 | | - YXDeviceState.CREATING_MAP_STATE: "creating_map", |
21 | | - YXDeviceState.MAP_SAVE_STATE: "saving_map", |
22 | | - YXDeviceState.RE_LOCATION_STATE: "relocating", |
23 | | - YXDeviceState.ROBOT_SWEEPING: "sweeping", |
24 | | - YXDeviceState.ROBOT_MOPING: "mopping", |
25 | | - YXDeviceState.ROBOT_SWEEP_AND_MOPING: "sweep_and_mop", |
26 | | - YXDeviceState.ROBOT_TRANSITIONING: "transitioning", |
27 | | - YXDeviceState.ROBOT_WAIT_CHARGE: "waiting_to_charge", |
28 | | - } |
29 | | - |
30 | | - assert {state: state.value for state in expected_values} == expected_values |
31 | | - assert all(not value.endswith("state") for value in expected_values.values()) |
| 22 | + assert state.value == string |
32 | 23 |
|
33 | 24 |
|
34 | | -def test_q10_status_codes_map_to_canonical_values() -> None: |
| 25 | +@pytest.mark.parametrize( |
| 26 | + "code, expected_state", |
| 27 | + [ |
| 28 | + (5, YXDeviceState.CLEANING), |
| 29 | + (8, YXDeviceState.CHARGING), |
| 30 | + (14, YXDeviceState.UPDATING), |
| 31 | + ], |
| 32 | +) |
| 33 | +def test_q10_status_codes_map_to_canonical_values(code: int, expected_state: YXDeviceState) -> None: |
35 | 34 | """Code-based mapping should return canonical status values.""" |
36 | | - assert YXDeviceState.from_code(5) is YXDeviceState.CLEANING_STATE |
37 | | - assert YXDeviceState.from_code(8) is YXDeviceState.CHARGING_STATE |
38 | | - assert YXDeviceState.from_code(14) is YXDeviceState.UPGRADE_STATE |
| 35 | + assert YXDeviceState.from_code(code) is expected_state |
0 commit comments