light.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # Mixins for testing lights
  2. from homeassistant.components.light import COLOR_MODE_ONOFF
  3. from ..helpers import assert_device_properties_set
  4. class BasicLightTests:
  5. def setUpBasicLight(self, dps, subject):
  6. self.basicLight = subject
  7. self.basicLightDps = dps
  8. def test_basic_light_supported_features(self):
  9. self.assertEqual(self.basicLight.supported_features, 0)
  10. def test_basic_light_supported_color_modes(self):
  11. self.assertCountEqual(
  12. self.basicLight.supported_color_modes,
  13. [COLOR_MODE_ONOFF],
  14. )
  15. def test_basic_light_color_mode(self):
  16. self.assertEqual(self.basicLight.color_mode, COLOR_MODE_ONOFF)
  17. def test_light_has_no_brightness(self):
  18. self.assertIsNone(self.basicLight.brightness)
  19. def test_light_has_no_effects(self):
  20. self.assertIsNone(self.basicLight.effect_list)
  21. self.assertIsNone(self.basicLight.effect)
  22. def test_basic_light_is_on(self):
  23. self.dps[self.basicLightDps] = True
  24. self.assertTrue(self.basicLight.is_on)
  25. self.dps[self.basicLightDps] = False
  26. self.assertFalse(self.basicLight.is_on)
  27. async def test_basic_light_turn_on(self):
  28. async with assert_device_properties_set(
  29. self.basicLight._device, {self.basicLightDps: True}
  30. ):
  31. await self.basicLight.async_turn_on()
  32. async def test_basic_light_turn_off(self):
  33. async with assert_device_properties_set(
  34. self.basicLight._device, {self.basicLightDps: False}
  35. ):
  36. await self.basicLight.async_turn_off()
  37. async def test_basic_light_toggle_turns_on_when_it_was_off(self):
  38. self.dps[self.basicLightDps] = False
  39. async with assert_device_properties_set(
  40. self.basicLight._device,
  41. {self.basicLightDps: True},
  42. ):
  43. await self.basicLight.async_toggle()
  44. async def test_basic_light_toggle_turns_off_when_it_was_on(self):
  45. self.dps[self.basicLightDps] = True
  46. async with assert_device_properties_set(
  47. self.basicLight._device,
  48. {self.basicLightDps: False},
  49. ):
  50. await self.basicLight.async_toggle()
  51. def test_basic_light_state_attributes(self):
  52. self.assertEqual(self.basicLight.device_state_attributes, {})