|
23 | 23 | Consumable, |
24 | 24 | DnDTimer, |
25 | 25 | StatusV2, |
| 26 | + get_dock_state, |
26 | 27 | ) |
27 | 28 | from tests.mock_data import ( |
28 | 29 | CLEAN_RECORD, |
@@ -141,36 +142,54 @@ def test_current_map() -> None: |
141 | 142 |
|
142 | 143 |
|
143 | 144 | @pytest.mark.parametrize( |
144 | | - "state, charge_status, battery, expected_dock_state", |
| 145 | + "state, charge_status, battery, is_supported_valley_electricity, expected_dock_state", |
145 | 146 | [ |
146 | | - (RoborockStateCode.emptying_the_bin, None, 50, RoborockDockState.dusting), |
147 | | - (RoborockStateCode.charging_complete, None, 100, RoborockDockState.full), |
148 | | - (RoborockStateCode.charging, None, 100, RoborockDockState.full), |
149 | | - (RoborockStateCode.charging, RoborockChargeStatus.charging.value, 90, RoborockDockState.charging), |
150 | | - (RoborockStateCode.charging, RoborockChargeStatus.charge_waiting.value, 50, RoborockDockState.off_peak_waiting), |
151 | | - (RoborockStateCode.charging, None, 50, RoborockDockState.charging), |
152 | | - (RoborockStateCode.returning_home, None, 20, RoborockDockState.returning), |
153 | | - (RoborockStateCode.docking, None, 15, RoborockDockState.returning), |
154 | | - (RoborockStateCode.cleaning, None, 80, RoborockDockState.idle), |
155 | | - (RoborockStateCode.paused, None, 80, RoborockDockState.idle), |
156 | | - (RoborockStateCode.unknown, None, 100, RoborockDockState.unknown), |
157 | | - (None, None, 100, RoborockDockState.unknown), |
| 147 | + (RoborockStateCode.emptying_the_bin, None, 50, False, RoborockDockState.dusting), |
| 148 | + (RoborockStateCode.charging_complete, None, 100, False, RoborockDockState.full), |
| 149 | + (RoborockStateCode.charging, None, 100, False, RoborockDockState.full), |
| 150 | + (RoborockStateCode.charging, RoborockChargeStatus.charging.value, 90, False, RoborockDockState.charging), |
| 151 | + ( |
| 152 | + RoborockStateCode.charging, |
| 153 | + RoborockChargeStatus.charge_waiting.value, |
| 154 | + 50, |
| 155 | + True, |
| 156 | + RoborockDockState.off_peak_waiting, |
| 157 | + ), |
| 158 | + (RoborockStateCode.charging, RoborockChargeStatus.charge_waiting.value, 50, False, RoborockDockState.charging), |
| 159 | + (RoborockStateCode.charging, None, 50, False, RoborockDockState.charging), |
| 160 | + (RoborockStateCode.returning_home, None, 20, False, RoborockDockState.returning), |
| 161 | + (RoborockStateCode.docking, None, 15, False, RoborockDockState.returning), |
| 162 | + (RoborockStateCode.cleaning, None, 80, False, RoborockDockState.idle), |
| 163 | + (RoborockStateCode.paused, None, 80, False, RoborockDockState.idle), |
| 164 | + (RoborockStateCode.unknown, None, 100, False, RoborockDockState.unknown), |
| 165 | + (None, None, 100, False, RoborockDockState.unknown), |
158 | 166 | ], |
159 | 167 | ) |
160 | | -def test_dock_state( |
| 168 | +def test_get_dock_state( |
161 | 169 | state: RoborockStateCode | None, |
162 | 170 | charge_status: int | None, |
163 | 171 | battery: int, |
| 172 | + is_supported_valley_electricity: bool, |
164 | 173 | expected_dock_state: RoborockDockState, |
165 | 174 | ) -> None: |
166 | | - """Test that dock_state correctly synthesizes UI state.""" |
167 | | - status = copy.deepcopy(STATUS) |
168 | | - status["state"] = state |
169 | | - status["charge_status"] = charge_status |
170 | | - status["battery"] = battery |
| 175 | + """Test that get_dock_state correctly synthesizes UI state.""" |
| 176 | + assert ( |
| 177 | + get_dock_state( |
| 178 | + state=state, |
| 179 | + battery=battery, |
| 180 | + charge_status=charge_status, |
| 181 | + is_supported_valley_electricity=is_supported_valley_electricity, |
| 182 | + ) |
| 183 | + == expected_dock_state |
| 184 | + ) |
171 | 185 |
|
| 186 | + |
| 187 | +def test_status_v2_dock_state_deprecated() -> None: |
| 188 | + """Test that accessing StatusV2.dock_state issues a DeprecationWarning.""" |
| 189 | + status = copy.deepcopy(STATUS) |
172 | 190 | s = StatusV2.from_dict(status) |
173 | | - assert s.dock_state == expected_dock_state |
| 191 | + with pytest.deprecated_call(): |
| 192 | + assert s.dock_state == RoborockDockState.full |
174 | 193 |
|
175 | 194 |
|
176 | 195 | def test_status_v2() -> None: |
|
0 commit comments