From 2ce2765e674fe6ebc0f8d9abadda5ccc14e583a2 Mon Sep 17 00:00:00 2001
From: epenet <6771947+epenet@users.noreply.github.com>
Date: Thu, 12 Dec 2024 16:49:25 +0100
Subject: [PATCH] Adjust light test helpers to use Kelvin, and cleanup unused
 helpers (#133048)

Cleanup light test helper methods
---
 .core_files.yaml                             |   1 +
 tests/components/light/common.py             | 107 +------------------
 tests/components/mqtt/test_light.py          |   4 +-
 tests/components/mqtt/test_light_json.py     |  12 ++-
 tests/components/mqtt/test_light_template.py |   8 +-
 tests/components/tasmota/test_light.py       |  10 +-
 6 files changed, 28 insertions(+), 114 deletions(-)

diff --git a/.core_files.yaml b/.core_files.yaml
index cc99487f68d..2624c4432be 100644
--- a/.core_files.yaml
+++ b/.core_files.yaml
@@ -132,6 +132,7 @@ tests: &tests
   - tests/components/conftest.py
   - tests/components/diagnostics/**
   - tests/components/history/**
+  - tests/components/light/common.py
   - tests/components/logbook/**
   - tests/components/recorder/**
   - tests/components/repairs/**
diff --git a/tests/components/light/common.py b/tests/components/light/common.py
index 147f2336876..d696c7ab8cf 100644
--- a/tests/components/light/common.py
+++ b/tests/components/light/common.py
@@ -10,11 +10,10 @@ from homeassistant.components.light import (
     ATTR_BRIGHTNESS,
     ATTR_BRIGHTNESS_PCT,
     ATTR_COLOR_NAME,
-    ATTR_COLOR_TEMP,
+    ATTR_COLOR_TEMP_KELVIN,
     ATTR_EFFECT,
     ATTR_FLASH,
     ATTR_HS_COLOR,
-    ATTR_KELVIN,
     ATTR_PROFILE,
     ATTR_RGB_COLOR,
     ATTR_RGBW_COLOR,
@@ -35,54 +34,10 @@ from homeassistant.const import (
     SERVICE_TURN_ON,
 )
 from homeassistant.core import HomeAssistant
-from homeassistant.loader import bind_hass
 
 from tests.common import MockToggleEntity
 
 
-@bind_hass
-def turn_on(
-    hass: HomeAssistant,
-    entity_id: str = ENTITY_MATCH_ALL,
-    transition: float | None = None,
-    brightness: int | None = None,
-    brightness_pct: float | None = None,
-    rgb_color: tuple[int, int, int] | None = None,
-    rgbw_color: tuple[int, int, int, int] | None = None,
-    rgbww_color: tuple[int, int, int, int, int] | None = None,
-    xy_color: tuple[float, float] | None = None,
-    hs_color: tuple[float, float] | None = None,
-    color_temp: int | None = None,
-    kelvin: int | None = None,
-    profile: str | None = None,
-    flash: str | None = None,
-    effect: str | None = None,
-    color_name: str | None = None,
-    white: bool | None = None,
-) -> None:
-    """Turn all or specified light on."""
-    hass.add_job(
-        async_turn_on,
-        hass,
-        entity_id,
-        transition,
-        brightness,
-        brightness_pct,
-        rgb_color,
-        rgbw_color,
-        rgbww_color,
-        xy_color,
-        hs_color,
-        color_temp,
-        kelvin,
-        profile,
-        flash,
-        effect,
-        color_name,
-        white,
-    )
-
-
 async def async_turn_on(
     hass: HomeAssistant,
     entity_id: str = ENTITY_MATCH_ALL,
@@ -94,8 +49,7 @@ async def async_turn_on(
     rgbww_color: tuple[int, int, int, int, int] | None = None,
     xy_color: tuple[float, float] | None = None,
     hs_color: tuple[float, float] | None = None,
-    color_temp: int | None = None,
-    kelvin: int | None = None,
+    color_temp_kelvin: int | None = None,
     profile: str | None = None,
     flash: str | None = None,
     effect: str | None = None,
@@ -116,8 +70,7 @@ async def async_turn_on(
             (ATTR_RGBWW_COLOR, rgbww_color),
             (ATTR_XY_COLOR, xy_color),
             (ATTR_HS_COLOR, hs_color),
-            (ATTR_COLOR_TEMP, color_temp),
-            (ATTR_KELVIN, kelvin),
+            (ATTR_COLOR_TEMP_KELVIN, color_temp_kelvin),
             (ATTR_FLASH, flash),
             (ATTR_EFFECT, effect),
             (ATTR_COLOR_NAME, color_name),
@@ -129,17 +82,6 @@ async def async_turn_on(
     await hass.services.async_call(DOMAIN, SERVICE_TURN_ON, data, blocking=True)
 
 
-@bind_hass
-def turn_off(
-    hass: HomeAssistant,
-    entity_id: str = ENTITY_MATCH_ALL,
-    transition: float | None = None,
-    flash: str | None = None,
-) -> None:
-    """Turn all or specified light off."""
-    hass.add_job(async_turn_off, hass, entity_id, transition, flash)
-
-
 async def async_turn_off(
     hass: HomeAssistant,
     entity_id: str = ENTITY_MATCH_ALL,
@@ -160,43 +102,6 @@ async def async_turn_off(
     await hass.services.async_call(DOMAIN, SERVICE_TURN_OFF, data, blocking=True)
 
 
-@bind_hass
-def toggle(
-    hass: HomeAssistant,
-    entity_id: str = ENTITY_MATCH_ALL,
-    transition: float | None = None,
-    brightness: int | None = None,
-    brightness_pct: float | None = None,
-    rgb_color: tuple[int, int, int] | None = None,
-    xy_color: tuple[float, float] | None = None,
-    hs_color: tuple[float, float] | None = None,
-    color_temp: int | None = None,
-    kelvin: int | None = None,
-    profile: str | None = None,
-    flash: str | None = None,
-    effect: str | None = None,
-    color_name: str | None = None,
-) -> None:
-    """Toggle all or specified light."""
-    hass.add_job(
-        async_toggle,
-        hass,
-        entity_id,
-        transition,
-        brightness,
-        brightness_pct,
-        rgb_color,
-        xy_color,
-        hs_color,
-        color_temp,
-        kelvin,
-        profile,
-        flash,
-        effect,
-        color_name,
-    )
-
-
 async def async_toggle(
     hass: HomeAssistant,
     entity_id: str = ENTITY_MATCH_ALL,
@@ -206,8 +111,7 @@ async def async_toggle(
     rgb_color: tuple[int, int, int] | None = None,
     xy_color: tuple[float, float] | None = None,
     hs_color: tuple[float, float] | None = None,
-    color_temp: int | None = None,
-    kelvin: int | None = None,
+    color_temp_kelvin: int | None = None,
     profile: str | None = None,
     flash: str | None = None,
     effect: str | None = None,
@@ -225,8 +129,7 @@ async def async_toggle(
             (ATTR_RGB_COLOR, rgb_color),
             (ATTR_XY_COLOR, xy_color),
             (ATTR_HS_COLOR, hs_color),
-            (ATTR_COLOR_TEMP, color_temp),
-            (ATTR_KELVIN, kelvin),
+            (ATTR_COLOR_TEMP_KELVIN, color_temp_kelvin),
             (ATTR_FLASH, flash),
             (ATTR_EFFECT, effect),
             (ATTR_COLOR_NAME, color_name),
diff --git a/tests/components/mqtt/test_light.py b/tests/components/mqtt/test_light.py
index 8e9e2abb85a..ed4b16e3d0c 100644
--- a/tests/components/mqtt/test_light.py
+++ b/tests/components/mqtt/test_light.py
@@ -1148,7 +1148,7 @@ async def test_sending_mqtt_commands_and_optimistic(
     assert state.attributes.get(light.ATTR_COLOR_MODE) == "xy"
     assert state.attributes.get(light.ATTR_SUPPORTED_COLOR_MODES) == color_modes
 
-    await common.async_turn_on(hass, "light.test", color_temp=125)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=8000)
     mqtt_mock.async_publish.assert_has_calls(
         [
             call("test_light_rgb/color_temp/set", "125", 2, False),
@@ -1321,7 +1321,7 @@ async def test_sending_mqtt_color_temp_command_with_template(
     state = hass.states.get("light.test")
     assert state.state == STATE_UNKNOWN
 
-    await common.async_turn_on(hass, "light.test", color_temp=100)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=10000)
 
     mqtt_mock.async_publish.assert_has_calls(
         [
diff --git a/tests/components/mqtt/test_light_json.py b/tests/components/mqtt/test_light_json.py
index 18627c4f6ef..b1031bec342 100644
--- a/tests/components/mqtt/test_light_json.py
+++ b/tests/components/mqtt/test_light_json.py
@@ -423,7 +423,9 @@ async def test_single_color_mode(
     state = hass.states.get("light.test")
     assert state.state == STATE_UNKNOWN
 
-    await common.async_turn_on(hass, "light.test", brightness=50, color_temp=192)
+    await common.async_turn_on(
+        hass, "light.test", brightness=50, color_temp_kelvin=5208
+    )
 
     async_fire_mqtt_message(
         hass,
@@ -458,7 +460,9 @@ async def test_turn_on_with_unknown_color_mode_optimistic(
     assert state.state == STATE_ON
 
     # Turn on the light with brightness or color_temp attributes
-    await common.async_turn_on(hass, "light.test", brightness=50, color_temp=192)
+    await common.async_turn_on(
+        hass, "light.test", brightness=50, color_temp_kelvin=5208
+    )
     state = hass.states.get("light.test")
     assert state.attributes.get("color_mode") == light.ColorMode.COLOR_TEMP
     assert state.attributes.get("brightness") == 50
@@ -1083,7 +1087,7 @@ async def test_sending_mqtt_commands_and_optimistic(
     state = hass.states.get("light.test")
     assert state.state == STATE_ON
 
-    await common.async_turn_on(hass, "light.test", color_temp=90)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=11111)
 
     mqtt_mock.async_publish.assert_called_once_with(
         "test_light_rgb/set",
@@ -1244,7 +1248,7 @@ async def test_sending_mqtt_commands_and_optimistic2(
     assert state.state == STATE_ON
 
     # Turn the light on with color temperature
-    await common.async_turn_on(hass, "light.test", color_temp=90)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=11111)
     mqtt_mock.async_publish.assert_called_once_with(
         "test_light_rgb/set",
         JsonValidator('{"state":"ON","color_temp":90}'),
diff --git a/tests/components/mqtt/test_light_template.py b/tests/components/mqtt/test_light_template.py
index b17637e43b0..5ffff578b5b 100644
--- a/tests/components/mqtt/test_light_template.py
+++ b/tests/components/mqtt/test_light_template.py
@@ -205,7 +205,9 @@ async def test_single_color_mode(
     state = hass.states.get("light.test")
     assert state.state == STATE_UNKNOWN
 
-    await common.async_turn_on(hass, "light.test", brightness=50, color_temp=192)
+    await common.async_turn_on(
+        hass, "light.test", brightness=50, color_temp_kelvin=5208
+    )
     async_fire_mqtt_message(hass, "test_light", "on,50,192")
     color_modes = [light.ColorMode.COLOR_TEMP]
     state = hass.states.get("light.test")
@@ -463,7 +465,7 @@ async def test_sending_mqtt_commands_and_optimistic(
     assert state.state == STATE_ON
 
     # Set color_temp
-    await common.async_turn_on(hass, "light.test", color_temp=70)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=14285)
     mqtt_mock.async_publish.assert_called_once_with(
         "test_light_rgb/set", "on,,70,--,-", 2, False
     )
@@ -594,7 +596,7 @@ async def test_sending_mqtt_commands_non_optimistic_brightness_template(
     assert state.state == STATE_UNKNOWN
 
     # Set color_temp
-    await common.async_turn_on(hass, "light.test", color_temp=70)
+    await common.async_turn_on(hass, "light.test", color_temp_kelvin=14285)
     mqtt_mock.async_publish.assert_called_once_with(
         "test_light_rgb/set", "on,,70,--,-", 0, False
     )
diff --git a/tests/components/tasmota/test_light.py b/tests/components/tasmota/test_light.py
index f5802c509bf..4f4daee1301 100644
--- a/tests/components/tasmota/test_light.py
+++ b/tests/components/tasmota/test_light.py
@@ -1108,7 +1108,7 @@ async def test_sending_mqtt_commands_rgbww(
     )
     mqtt_mock.async_publish.reset_mock()
 
-    await common.async_turn_on(hass, "light.tasmota_test", color_temp=200)
+    await common.async_turn_on(hass, "light.tasmota_test", color_temp_kelvin=5000)
     mqtt_mock.async_publish.assert_called_once_with(
         "tasmota_49A3BC/cmnd/Backlog",
         "NoDelay;Power1 ON;NoDelay;CT 200",
@@ -1350,7 +1350,9 @@ async def test_transition(
     assert state.attributes.get("color_temp") == 153
 
     # Set color_temp of the light from 153 to 500 @ 50%: Speed should be 6*2*2=24
-    await common.async_turn_on(hass, "light.tasmota_test", color_temp=500, transition=6)
+    await common.async_turn_on(
+        hass, "light.tasmota_test", color_temp_kelvin=2000, transition=6
+    )
     mqtt_mock.async_publish.assert_called_once_with(
         "tasmota_49A3BC/cmnd/Backlog",
         "NoDelay;Fade2 1;NoDelay;Speed2 24;NoDelay;Power1 ON;NoDelay;CT 500",
@@ -1369,7 +1371,9 @@ async def test_transition(
     assert state.attributes.get("color_temp") == 500
 
     # Set color_temp of the light from 500 to 326 @ 50%: Speed should be 6*2*2*2=48->40
-    await common.async_turn_on(hass, "light.tasmota_test", color_temp=326, transition=6)
+    await common.async_turn_on(
+        hass, "light.tasmota_test", color_temp_kelvin=3067, transition=6
+    )
     mqtt_mock.async_publish.assert_called_once_with(
         "tasmota_49A3BC/cmnd/Backlog",
         "NoDelay;Fade2 1;NoDelay;Speed2 40;NoDelay;Power1 ON;NoDelay;CT 326",
-- 
GitLab