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:
1 parent
2b22673210
commit
d4ff29d797
6 files changed
+55
-15
No files matched your search
+12
-2
@@ -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
|
||||
|
||||
Reference in new issue
Block a user