import pytest from aiomql.core.base import Base class ChildClass(Base): attr: int attr2: str cls_attr: int = 10 class TestBaseClass: @pytest.fixture def child(self): return ChildClass(attr=1, attr2="test") def test_repr(self, child): repr_str = repr(child) assert repr_str.startswith("ChildClass(") assert "attr=1" in repr_str assert "attr2=test" in repr_str def test_set_attributes(self, child): child.set_attributes(attr3=3.14, attr2="str") assert child.attr2 == "str" assert getattr(child, "attr3", None) is None def test_annotations(self, child): annotations = child.annotations assert isinstance(annotations, dict) def test_get_dict(self, child): child.set_attributes(attr2="test") result = child.get_dict() assert result["attr"] == 1 assert result["attr2"] == "test" def test_get_dict_with_exclude(self, child): child.set_attributes(attr2="test") result = child.get_dict(exclude={"attr"}) assert "attr" not in result assert result["attr2"] == "test" def test_get_dict_with_include(self, child): child.set_attributes(attr3=3.14) result = child.get_dict(include={"attr"}) assert result["attr"] == 1 assert "attr2" not in result def test_class_vars(self, child): class_vars = child.class_vars assert isinstance(class_vars, dict) assert "cls_attr" in class_vars assert "attr" not in class_vars def test_dict_property(self, child): child.set_attributes(attr2="test") dict_prop = child.dict assert dict_prop["attr"] == 1 assert dict_prop["attr2"] == "test" assert dict_prop["cls_attr"] == 10