Simplify air purifier support by reusing existing helpers
Rewires /mode/vs/0's packed-options parsing (display_light/operating_mode/ blooming_level) onto laundry.py's existing option_value/replace_in_options/ bool_option_exists/bool_option_value instead of hand-rolled reimplementations, hoists the duplicated int-conversion helper into common.py (shared by range_hood.py too), collapses the five near-identical AIR_QUALITY sensors into a table-driven loop, extracts the /consumable/vs/0 item lookup into a named helper, and moves the humidity ignore list into capabilities/ air_purifier.py's own COVERAGE list to match the airconditioner/range_hood convention of keeping by_type files as pure composition. No behavior change; golden state keys and all existing tests are unaffected.
This commit is contained in:
5 files changed
+69
-93
No files matched your search
@@ -72,7 +72,8 @@ def test_diagnosis_reuses_dishwasher_capability():
|
||||
|
||||
def test_light_switch_write_contract():
|
||||
"""The display-light switch RMW-replaces only the 'Light_*' entry in the
|
||||
packed /mode/vs/0 options list, preserving the other flags."""
|
||||
packed /mode/vs/0 options list (via laundry.replace_in_options), leaving
|
||||
the other flags and the list order untouched."""
|
||||
desc = next(e for e in air_purifier.MODE.entities if e.key == 'display_light')
|
||||
rep = {'x.com.samsung.da.options': [
|
||||
'Comode_Off', 'Blooming_0', 'Light_On', 'OptionCode_60282',
|
||||
@@ -81,7 +82,7 @@ def test_light_switch_write_contract():
|
||||
assert desc.write_fn('Off', rep) == (
|
||||
['mode', 'vs', '0'],
|
||||
{'x.com.samsung.da.options': [
|
||||
'Comode_Off', 'Blooming_0', 'OptionCode_60282', 'Light_Off',
|
||||
'Comode_Off', 'Blooming_0', 'Light_Off', 'OptionCode_60282',
|
||||
]},
|
||||
)
|
||||
|
||||
|
||||
Reference in new issue
Block a user