blob: 25a4a2395853bf0a565141d4f847f387614ad260 [file] [log] [blame]
from typing import List
from attr import define, field
from requests_cache.models import RichMixin
@define
class DemoModel(RichMixin):
str_attr: str = field(default=None)
int_attr: int = field(default=None)
list_attr: List[str] = field(factory=list)
_private_attr: bool = field(default=False, repr=False)
def test_rich_mixin():
"""Test that RichMixin.__rich_repr__ informs rich about all public attributes, current values,
and defaults
"""
model = DemoModel(str_attr='str', int_attr=1, list_attr=['a', 'b'])
repr_tokens = list(model.__rich_repr__())
assert repr_tokens == [
('str_attr', 'str', None),
('int_attr', 1, None),
('list_attr', ['a', 'b'], []),
]