Add regression coverage for NE8300D range (issue #112)

TP1X_DA-KS-RANGE-0102X already resolves via the '-RANGE-' modelNum
fallback and /cooktopmonitoring/vs/0 already binds through
range.COOKTOP_MONITORING, so this model binds with zero unbound hrefs
today -- add a fixture to lock that in.
This commit is contained in:
Marc Billow
2026-07-27 13:39:51 +00:00
parent 085e80c92c
commit 46dd91ce32
3 changed files with 366 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
{
"state_keys": [
"alarm_code",
"child_lock",
"cloud_connected",
"cook_time",
"cooktop_running_state",
"current_temp_c",
"cycle_active",
"door_open",
"fast_preheat",
"finish_time",
"firmware_update",
"lamp",
"machine_state",
"natural_steam",
"operation_time_minutes",
"oven_mode",
"oven_setpoint",
"oven_state",
"power_switch",
"progress_percentage",
"remote_control",
"sound",
"warming_center_state"
]
}
File diff suppressed because one or more lines are too long
+17
View File
@@ -510,6 +510,23 @@ def test_registry_reproduces_golden_state_keys_for_washer_wa55a7700av():
)
def test_registry_reproduces_golden_state_keys_for_range_ne8300d():
"""TP1X_DA-KS-RANGE-0102X (model NE8300D, issue #112) -- reports no
oneUiVersion; resolved via the '-RANGE-' modelNum token fallback.
Binds cleanly against the existing range registry, including
/cooktopmonitoring/vs/0 via range.COOKTOP_MONITORING, with zero
unbound hrefs."""
from tests.conftest import _load_device
resources = _load_device('range_ne8300d')
golden = json.loads((GOLDEN / 'range_ne8300d.json').read_text())
state_keys = _new_state_keys('range_ne8300d', resources)
assert set(state_keys) == set(golden['state_keys']), (
f"state_keys mismatch:\n"
f" extra: {sorted(set(state_keys) - set(golden['state_keys']))}\n"
f" missing: {sorted(set(golden['state_keys']) - set(state_keys))}"
)
def test_resources_from_batch_preferred_over_flat():
from tests.conftest import _resources_from_dump
dump = {