Skip to content

Commit 4341d34

Browse files
committed
test: add data model RoborockBase inheritance conformance tests
1 parent ad20404 commit 4341d34

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"""Conformance tests for data model inheritance.
2+
3+
As defined in AGENTS.md, structured domain and wire models in `roborock.data`
4+
MUST inherit from `RoborockBase` to ensure standard `as_dict()` serialization
5+
and `from_dict()` deserialization across consumers.
6+
"""
7+
8+
from __future__ import annotations
9+
10+
import pytest
11+
12+
import roborock.data
13+
from roborock.data.containers import RoborockBase
14+
from tests.conformance.discovery import discover_dataclasses, to_pytest_params
15+
16+
17+
@pytest.mark.parametrize(
18+
"model_cls",
19+
to_pytest_params(discover_dataclasses(roborock.data)),
20+
)
21+
def test_data_model_subclasses_roborock_base(model_cls: type) -> None:
22+
"""All domain dataclasses in roborock.data must inherit from RoborockBase."""
23+
assert issubclass(model_cls, RoborockBase), (
24+
f"{model_cls.__module__}.{model_cls.__name__} is a dataclass but does not inherit from RoborockBase. "
25+
"Per AGENTS.md, domain containers must subclass RoborockBase for serialization."
26+
)

0 commit comments

Comments
 (0)