33import paho .mqtt .client as mqtt
44import pytest
55
6- from roborock import RoborockClient , UserData , HomeData
6+ from roborock import RoborockClient , UserData , HomeData , RoborockDockDustCollectionType , SmartWashParameters , \
7+ RoborockDockWashingModeType
78from roborock .api import PreparedRequest , RoborockMqttClient
89from tests .mock_data import BASE_URL_REQUEST , GET_CODE_RESPONSE , USER_DATA , HOME_DATA_RAW
910
@@ -50,7 +51,7 @@ async def test_request_code():
5051async def test_get_home_data ():
5152 rc = RoborockClient ("sample@gmail.com" )
5253 with patch ("roborock.api.RoborockClient._get_base_url" ) as mock_url , patch (
53- "roborock.api.RoborockClient._get_header_client_id" ) as mock_header_client , patch (
54+ "roborock.api.RoborockClient._get_header_client_id" ) as mock_header_client , patch (
5455 "roborock.api.PreparedRequest.request" ) as mock_prepared_request :
5556 mock_prepared_request .side_effect = [{'code' : 200 , 'msg' : 'success' , 'data' : {"rrHomeId" : 1 }},
5657 {'code' : 200 , 'success' : True , 'result' : HOME_DATA_RAW }]
@@ -59,3 +60,35 @@ async def test_get_home_data():
5960 result = await rc .get_home_data (user_data )
6061
6162 assert result == HomeData (HOME_DATA_RAW )
63+
64+
65+ @pytest .mark .asyncio
66+ async def test_get_dust_collection_mode ():
67+ home_data = HomeData (HOME_DATA_RAW )
68+ device_map = {home_data .devices [0 ].duid : home_data .devices [0 ]}
69+ rmc = RoborockMqttClient (UserData (USER_DATA ), device_map )
70+ with patch ("roborock.api.RoborockMqttClient.send_command" ) as command :
71+ command .return_value = {"mode" : 1 }
72+ assert await rmc .get_dust_collection_mode (home_data .devices [0 ].duid ) == RoborockDockDustCollectionType .LIGHT
73+
74+
75+ @pytest .mark .asyncio
76+ async def test_get_mop_wash_mode ():
77+ home_data = HomeData (HOME_DATA_RAW )
78+ device_map = {home_data .devices [0 ].duid : home_data .devices [0 ]}
79+ rmc = RoborockMqttClient (UserData (USER_DATA ), device_map )
80+ with patch ("roborock.api.RoborockMqttClient.send_command" ) as command :
81+ command .return_value = {'smart_wash' : 0 , 'wash_interval' : 1500 }
82+ mop_wash = await rmc .get_mop_wash_mode (home_data .devices [0 ].duid )
83+ assert mop_wash .smart_wash == 0
84+ assert mop_wash .wash_interval == 1500
85+
86+
87+ @pytest .mark .asyncio
88+ async def test_get_washing_mode ():
89+ home_data = HomeData (HOME_DATA_RAW )
90+ device_map = {home_data .devices [0 ].duid : home_data .devices [0 ]}
91+ rmc = RoborockMqttClient (UserData (USER_DATA ), device_map )
92+ with patch ("roborock.api.RoborockMqttClient.send_command" ) as command :
93+ command .return_value = {'wash_mode' : 2 }
94+ assert await rmc .get_washing_mode (home_data .devices [0 ].duid ) == RoborockDockWashingModeType .DEEP
0 commit comments