Add confirmed washer/dryer cycle code labels (issue #80)

Five raw course codes were rendering unlabeled because no translation
entry existed for them, confirmed by the reporter selecting each cycle
on the physical appliance and reading back the raw code from the
entity's state:

- washer_cycle_table_02: '52' Eco Cold, '54' Towels, '60' Self Clean+
  (a WF50A8600AV/US). '54' shares a display name with the existing '24'
  Towels -- a different code on the same table legitimately landing on
  the same label, matching the existing '21'/'65' Colors and
  '27'/'5E' Rinse+Spin pairs, not a duplicate-in-error.
- dryer_cycle_table_03: '01' Normal, '06' Time dry (a DVE50A8600V/A3,
  the same model added in the previous commit's detection fix).

No code changes -- select.py already derives which raw values it
normalizes from the shipped catalog, so labelling a code is purely a
translations/en.json (mirrored to nl.json) addition.
This commit is contained in:
Marc Billow
2026-07-27 00:47:16 +00:00
parent aff7647460
commit 5d7789eb4e
5 changed files with 37 additions and 1 deletions
+15
View File
@@ -168,3 +168,18 @@ def test_all_entity_state_translation_keys_are_lowercase():
for translation in platform.values():
for state_key in translation.get("state", {}):
assert state_key == state_key.lower()
def test_issue_80_cycle_codes_are_labelled():
"""Confirmed by the reporter selecting each cycle on the physical
appliance and reading back the raw code from the entity's state --
regression-lock those five mappings against accidental removal."""
select_strings = _load("en")["entity"]["select"]
washer_state = select_strings["washer_cycle_table_02"]["state"]
assert washer_state["52"] == "Eco Cold"
assert washer_state["54"] == "Towels"
assert washer_state["60"] == "Self Clean+"
dryer_state = select_strings["dryer_cycle_table_03"]["state"]
assert dryer_state["01"] == "Normal"
assert dryer_state["06"] == "Time dry"