import json import unittest from wideq.client import Client, DeviceInfo from wideq.washer import WasherDevice, WasherState, WasherStatus POLL_DATA = { "APCourse": "10", "DryLevel": "0", "Error": "0", "Initial_Time_H": "0", "Initial_Time_M": "58", "LoadLevel": "4", "OPCourse": "0", "Option1": "0", "Option2": "0", "Option3": "2", "PreState": "23", "Remain_Time_H": "0", "Remain_Time_M": "13", "Reserve_Time_H": "0", "Reserve_Time_M": "0", "RinseOption": "1", "SmartCourse": "51", "Soil": "0", "SpinSpeed": "5", "State": "30", "TCLCount": "15", "WaterTemp": "4", } class WasherStatusTest(unittest.TestCase): def setUp(self): super().setUp() with open("./tests/fixtures/client.json") as fp: state = json.load(fp) self.client = Client.load(state) self.device_info = DeviceInfo( { "alias": "WASHER", "deviceId": "33330ba80-107d-11e9-96c8-0051ede85d3f", "deviceType": 201, "modelJsonUrl": ( "https://aic.lgthinq.com:46030/api/webContents/modelJSON?" "modelName=F3L2CYV5W_WIFI&countryCode=WW&contentsId=" "JS1217232703654216&authKey=thinq" ), "modelNm": "F3L2CYV5W_WIFI", } ) self.washer = WasherDevice(self.client, self.device_info) def test_properties(self): status = WasherStatus(self.washer, POLL_DATA) self.assertEqual(WasherState.RINSING, status.state) self.assertEqual(WasherState.RUNNING, status.previous_state) self.assertTrue(status.is_on) self.assertEqual(13, status.remaining_time) self.assertEqual(58, status.initial_time) self.assertEqual("Towels", status.course) self.assertEqual("SmallLoad", status.smart_course) self.assertEqual("No Error", status.error)