예제 #1
0
 async def test_set_level_update(api):
     """Tests the set_level method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act
     result = await device.set_level(75, 2, True)
     # Assert
     assert result
     assert device.status.level == 75
     assert device.status.switch
예제 #2
0
 async def test_switch_off_update(api):
     """Tests the switch_on method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.status.switch = True
     # Act
     result = await device.switch_off(True)
     # Assert
     assert result
     assert not device.status.switch
예제 #3
0
 async def test_set_fan_speed_update(api):
     """Tests the set_fan_speed method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act
     result = await device.set_fan_speed(66, True)
     # Assert
     assert result
     assert device.status.fan_speed == 66
     assert device.status.switch
예제 #4
0
 async def test_open(api):
     """Tests the open method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.door_control)
     # Act/Assert
     assert await device.open()
     assert device.status.door is None
     assert await device.open(set_status=True)
     assert device.status.door == 'opening'
예제 #5
0
 async def test_close_window_shade(api):
     """Tests the close method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.window_shade)
     # Act/Assert
     assert await device.close()
     assert device.status.window_shade is None
     assert await device.close(set_status=True)
     assert device.status.window_shade == "closing"
예제 #6
0
 async def test_close_legacy(api):
     """Tests the close method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.garage_door_control)
     # Act/Assert
     assert await device.close()
     assert device.status.door is None
     assert await device.close(set_status=True)
     assert device.status.door == "closing"
예제 #7
0
 async def test_set_fan_speed(api):
     """Tests the set_fan_speed method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act
     result = await device.set_fan_speed(66)
     # Assert
     assert result
     assert device.status.level == 0
     assert not device.status.switch
예제 #8
0
 async def test_set_color_hex(api):
     """Tests the set_color method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act
     result = await device.set_color(color_hex='#4B6432')
     # Assert
     assert result
     assert device.status.hue == 0
     assert device.status.saturation == 0
     assert device.status.color is None
예제 #9
0
 async def test_set_thermostat_fan_mode_update(api):
     """Tests the set_saturation method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_fan_mode)
     device.status.thermostat_fan_mode = "on"
     # Act
     result = await device.set_thermostat_fan_mode("auto", set_status=True)
     # Assert
     assert result
     assert device.status.thermostat_fan_mode == "auto"
예제 #10
0
 async def test_set_heating_setpoint_update(api):
     """Tests the set_heating_setpoint method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_heating_setpoint)
     device.status.heating_setpoint = 70
     # Act
     result = await device.set_heating_setpoint(76, set_status=True)
     # Assert
     assert result
     assert device.status.heating_setpoint == 76
예제 #11
0
 async def test_override_drlc_action(api):
     """Tests the override_drlc_action method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act/Assert
     assert await device.override_drlc_action(True)
     assert device.status.drlc_status is None
     assert await device.override_drlc_action(True, set_status=True)
     assert device.status.drlc_status == {
         "override": True
     }
예제 #12
0
 async def test_set_thermostat_mode_update(api):
     """Tests the set_thermostat_mode method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_mode)
     device.status.thermostat_mode = 'heat'
     # Act
     result = await device.set_thermostat_mode('auto', set_status=True)
     # Assert
     assert result
     assert device.status.thermostat_mode == 'auto'
예제 #13
0
 async def test_set_cooling_setpoint_mode(api):
     """Tests the set_cooling_setpoint method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_cooling_setpoint)
     device.status.cooling_setpoint = 70
     # Act
     result = await device.set_cooling_setpoint(76)
     # Assert
     assert result
     assert device.status.cooling_setpoint != 76
예제 #14
0
 async def test_set_thermostat_fan_mode(api):
     """Tests the set_saturation method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_fan_mode)
     device.status.thermostat_fan_mode = 'on'
     # Act
     result = await device.set_thermostat_fan_mode('auto')
     # Assert
     assert result
     assert device.status.thermostat_fan_mode != 'auto'
예제 #15
0
 async def test_set_color_update_hex(api):
     """Tests the set_saturation method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act
     result = await device.set_color(color_hex='#4B6432', set_status=True)
     # Assert
     assert result
     assert device.status.hue == 25
     assert device.status.saturation == 50
     assert device.status.color == '#4B6432'
예제 #16
0
 async def test_set_thermostat_mode(api):
     """Tests the set_thermostat_mode method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     device.capabilities.append(Capability.thermostat_mode)
     device.status.thermostat_mode = "heat"
     # Act
     result = await device.set_thermostat_mode("auto")
     # Assert
     assert result
     assert device.status.thermostat_mode != "auto"
예제 #17
0
 async def test_set_color_invalid(api):
     """Tests the set_saturation method invalid values."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Assert
     values = [-1, 101]
     for value in values:
         with pytest.raises(ValueError):
             await device.set_color(value, 0)
         with pytest.raises(ValueError):
             await device.set_color(0, value)
예제 #18
0
 async def test_set_level_invalid(api):
     """Tests the set_level method invalid values."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Assert level
     levels = [-1, 101]
     for level in levels:
         with pytest.raises(ValueError):
             await device.set_level(level)
     # Assert duration
     with pytest.raises(ValueError):
         await device.set_level(100, -1)
예제 #19
0
 async def test_request_drlc_action(api):
     """Tests the request_drlc_action method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act/Assert
     assert await device.request_drlc_action(
         1, 2, '1970-01-01T00:00:00Z', 10, 1)
     assert device.status.drlc_status is None
     assert await device.request_drlc_action(
         1, 2, '1970-01-01T00:00:00Z', 10, 1, set_status=True)
     assert device.status.drlc_status == {
         "duration": 10,
         "drlcLevel": 2,
         "start": '1970-01-01T00:00:00Z',
         "override": False
     }
예제 #20
0
 async def test_preset_position(api):
     """Tests the preset_position method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act/Assert
     assert await device.preset_position()
예제 #21
0
 async def test_execute(api):
     """Tests the execute method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act/Assert
     assert await device.execute('Test', {'data': 'Test'})
예제 #22
0
 async def test_execute(api):
     """Tests the execute method."""
     # Arrange
     device = DeviceEntity(api, device_id=DEVICE_ID)
     # Act/Assert
     assert await device.execute("Test", {"data": "Test"})