|
4 | 4 |
|
5 | 5 | import pytest |
6 | 6 |
|
7 | | -from roborock.containers import DnDTimer |
| 7 | +from roborock.containers import AppInitStatus, DnDTimer, HomeDataProduct |
| 8 | +from roborock.device_features import DeviceFeatures |
| 9 | +from roborock.devices.cache import Cache |
8 | 10 | from roborock.devices.device import RoborockDevice |
9 | 11 | from roborock.devices.traits.v1.do_not_disturb import DoNotDisturbTrait |
10 | 12 | from roborock.roborock_typing import RoborockCommand |
| 13 | +from tests import mock_data |
| 14 | + |
| 15 | + |
| 16 | +@pytest.fixture(autouse=True) |
| 17 | +async def supported_features(roborock_cache: Cache, device: RoborockDevice) -> None: |
| 18 | + """Fixture to set up supported features in cache.""" |
| 19 | + data = await roborock_cache.get() |
| 20 | + app_status = AppInitStatus.from_dict(mock_data.APP_GET_INIT_STATUS) |
| 21 | + product = HomeDataProduct.from_dict(mock_data.HOME_DATA_RAW["products"][0]) |
| 22 | + data.device_features = DeviceFeatures.from_feature_flags( |
| 23 | + new_feature_info=app_status.new_feature_info, |
| 24 | + new_feature_info_str=app_status.new_feature_info_str, |
| 25 | + feature_info=app_status.feature_info, |
| 26 | + product_nickname=product.product_nickname, |
| 27 | + ) |
| 28 | + await roborock_cache.set(data) |
| 29 | + |
| 30 | + # Ensure device traits are initialized with the updated cache |
| 31 | + assert device.v1_properties |
| 32 | + await device.v1_properties.discover_features() |
11 | 33 |
|
12 | 34 |
|
13 | 35 | @pytest.fixture |
14 | | -def dnd_trait(device: RoborockDevice) -> DoNotDisturbTrait: |
| 36 | +async def dnd_trait(device: RoborockDevice) -> DoNotDisturbTrait: |
15 | 37 | """Create a DoNotDisturbTrait instance with mocked dependencies.""" |
16 | 38 | assert device.v1_properties |
17 | 39 | assert device.v1_properties.dnd |
|
0 commit comments