def test_network_device(self): device = NetworkDevice("device", "192.168.1.1", "8090") self.assertEqual(device.name, "device") self.assertEqual(device.address, "192.168.1.1") self.assertEqual(device.port, "8090") self.assertEqual( device.__repr__(), "NetworkDevice(name=device,address=192.168.1.1," "port=8090)")
def test_dont_request_state_if_not_connected(self, mocked_connect, mocked_publish): device = DysonPureCoolLink({ "Active": True, "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/70ZGysII1K" "e1i0ZHakFH84DZuxsSQ4KTT2vbCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": "475" }) network_device = NetworkDevice('device-1', 'host', 1111) device.connection_callback(False) device._add_network_device(network_device) connected = device.connect(None, "192.168.0.2") self.assertFalse(connected) self.assertEqual(mocked_connect.call_count, 1) device.request_current_state() self.assertEqual(mocked_publish.call_count, 0) device.request_environmental_state() self.assertEqual(mocked_publish.call_count, 0)
def test_connect_device(self, mocked_connect, mocked_loop): device = DysonPureCoolLink({ "Active": True, "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/" "70ZGysII1Ke1i0ZHakFH84DZuxsSQ4KTT2v" "bCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": "475" }) network_device = NetworkDevice('device-1', 'host', 1111) device.state_data_available() device.sensor_data_available() device.connection_callback(True) device._add_network_device(network_device) connected = device.auto_connect() self.assertTrue(connected) self.assertIsNone(device.state) self.assertEqual(device.network_device, network_device) self.assertEqual(mocked_connect.call_count, 1) self.assertEqual(mocked_loop.call_count, 1) device.disconnect()
def setUp(self): device = DysonPureCool({ "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/70ZGysII1K" "e1i0ZHakFH84DZuxsSQ4KTT2vbCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": DYSON_PURE_COOL }) network_device = NetworkDevice('device-1', 'host', 1111) device._add_network_device(network_device) device._current_state = DysonPureCoolV2State( open("tests/data/state_pure_cool.json", "r").read()) device.connection_callback(True) device.state_data_available() device.sensor_data_available() self._device = device
def test_set_configuration_hot(self, mocked_connect, mocked_publish): device = DysonPureHotCoolLink({ "Active": True, "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/70ZGysII1K" "e1i0ZHakFH84DZuxsSQ4KTT2vbCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": Hot }) network_device = NetworkDevice('device-1', 'host', 1111) device._add_network_device(network_device) device._current_state = DysonPureCoolState( open("tests/data/state_hot.json", "r").read()) device.connection_callback(True) device.state_data_available() device.sensor_data_available() connected = device.auto_connect() self.assertTrue(connected) self.assertEqual(mocked_connect.call_count, 1) device.set_configuration(fan_mode=FanMode.FAN, oscillation=Oscillation.OSCILLATION_ON, fan_speed=FanSpeed.FAN_SPEED_3, night_mode=NightMode.NIGHT_MODE_OFF, quality_target=QualityTarget.QUALITY_NORMAL, standby_monitoring=SM.STANDBY_MONITORING_ON, heat_mode=HeatMode.HEAT_ON, focus_mode=FocusMode.FOCUS_ON, heat_target=HeatTarget.celsius(25)) self.assertEqual(mocked_publish.call_count, 3) self.assertEqual( device.__repr__(), "DysonPureHotCoolLink(serial=device-id-1,active=True," "name=device-1,version=21.03.08,auto_update=True," "new_version_available=False,product_type=455," "network_device=NetworkDevice(name=device-1," "address=host,port=1111))") device.disconnect()
def test_dont_set_configuration_if_not_connected(self, mocked_connect, mocked_publish): device = DysonPureCoolLink({ "Active": True, "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/70ZGysII1K" "e1i0ZHakFH84DZuxsSQ4KTT2vbCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": "475" }) network_device = NetworkDevice('device-1', 'host', 1111) device._add_network_device(network_device) device._current_state = DysonPureCoolState( open("tests/data/state.json", "r").read()) device.connection_callback(False) connected = device.auto_connect() self.assertFalse(connected) self.assertEqual(mocked_connect.call_count, 1) device.set_configuration(fan_mode=FanMode.FAN, oscillation=Oscillation.OSCILLATION_ON, fan_speed=FanSpeed.FAN_SPEED_3, night_mode=NightMode.NIGHT_MODE_OFF) self.assertEqual(mocked_publish.call_count, 0) self.assertEqual( device.__repr__(), "DysonPureCoolLink(serial=device-id-1,active=True," "name=device-1,version=21.03.08,auto_update=True," "new_version_available=False,product_type=475," "network_device=NetworkDevice(name=device-1," "address=host,port=1111))")
def test_set_configuration_timer_off(self, mocked_connect, mocked_publish): device = DysonPureCoolLink({ "Active": True, "Serial": "device-id-1", "Name": "device-1", "ScaleUnit": "SU01", "Version": "21.03.08", "LocalCredentials": "1/aJ5t52WvAfn+z+fjDuef86kQDQPefbQ6/70ZGysII1K" "e1i0ZHakFH84DZuxsSQ4KTT2vbCm7uYeTORULKLKQ==", "AutoUpdate": True, "NewVersionAvailable": False, "ProductType": "475" }) network_device = NetworkDevice('device-1', 'host', 1111) device._add_network_device(network_device) device._current_state = DysonPureCoolState( open("tests/data/state.json", "r").read()) device.connection_callback(True) device.state_data_available() device.sensor_data_available() connected = device.auto_connect() self.assertTrue(connected) self.assertEqual(mocked_connect.call_count, 1) device.set_configuration(sleep_timer=0) self.assertEqual(mocked_publish.call_count, 3) self.assertEqual( device.__repr__(), "DysonPureCoolLink(serial=device-id-1,active=True," "name=device-1,version=21.03.08,auto_update=True," "new_version_available=False,product_type=475," "network_device=NetworkDevice(name=device-1," "address=host,port=1111))") device.disconnect()