feat: switch conftest + golden tests to batch-first resource loading

conftest: _resources_from_dump() prefers /device/0 batch reps; falls
back to flat resources dict. Fixes _parse_device0_batch to include
stub reps (rep={href:...}) as {} so capabilities still bind on
resources with no current data (e.g. /alarms/vs/0 when no alarm active).

test_golden_regression: _new_state_and_uids now uses by_type.for_device
to select per-device-type capabilities + pattern caps.
This commit is contained in:
Marc Billow committed 2026-06-30 16:33:36 -05:00
1 parent 2b22673210
commit d4ff29d797
6 files changed
+55 -15

No files matched your search

+12 -2
View File
@@ -6,10 +6,20 @@ import pytest
DUMPS = Path(__file__).resolve().parent.parent / 'local-tools' / 'dumps'
def _resources_from_dump(dump: dict) -> dict[str, dict]:
from samsung_appliance.bridge import _parse_device0_batch
d0 = dump.get('device0')
if isinstance(d0, list) and len(d0) > 1:
batch = _parse_device0_batch(d0)
if batch:
return batch
return {k: v for k, v in dump.get('resources', {}).items()
if isinstance(v, dict)}
def _load_resources(ip: str) -> dict[str, dict]:
data = json.loads((DUMPS / f'{ip}.json').read_text())
# Filter to only dict values (skip non-dict representations like "<timeout>")
return {k: v for k, v in data['resources'].items() if isinstance(v, dict)}
return _resources_from_dump(data)
@pytest.fixture