|
1 | 1 | """Test cases for the containers module.""" |
2 | 2 |
|
3 | | -from syrupy import SnapshotAssertion |
| 3 | +import copy |
| 4 | + |
| 5 | +import pytest |
| 6 | +from syrupy.assertion import SnapshotAssertion |
4 | 7 |
|
5 | 8 | from roborock.data.v1 import ( |
6 | 9 | MultiMapsList, |
@@ -102,6 +105,26 @@ def test_status(): |
102 | 105 | assert s.dock_cool_fan_status == 0 |
103 | 106 |
|
104 | 107 |
|
| 108 | +@pytest.mark.parametrize( |
| 109 | + "dss_val, expected_clean_box_status, expected_dirty_box_status", |
| 110 | + [ |
| 111 | + (None, None, None), |
| 112 | + (169, ClearWaterBoxStatus.okay, DirtyWaterBoxStatus.okay), |
| 113 | + (149, ClearWaterBoxStatus.out_of_water, DirtyWaterBoxStatus.full_not_installed), |
| 114 | + (153, ClearWaterBoxStatus.okay, DirtyWaterBoxStatus.full_not_installed), |
| 115 | + ], |
| 116 | +) |
| 117 | +def test_dss_status( |
| 118 | + dss_val: int | None, expected_clean_box_status: ClearWaterBoxStatus, expected_dirty_box_status: DirtyWaterBoxStatus |
| 119 | +): |
| 120 | + """Test dss status properly setting child values.""" |
| 121 | + status = copy.deepcopy(STATUS) |
| 122 | + status["dss"] = dss_val |
| 123 | + s = StatusV2.from_dict(status) |
| 124 | + assert s.clear_water_box_status == expected_clean_box_status |
| 125 | + assert s.dirty_water_box_status == expected_dirty_box_status |
| 126 | + |
| 127 | + |
105 | 128 | def test_current_map() -> None: |
106 | 129 | """Test the current map logic based on map status.""" |
107 | 130 | s = S7MaxVStatus.from_dict(STATUS) |
|
0 commit comments