Exemple #1
0
 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)")
Exemple #2
0
 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)
Exemple #3
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()
Exemple #4
0
 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
Exemple #5
0
 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()
Exemple #6
0
 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))")
Exemple #7
0
 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()