Files
plex-playlist-old/tests/data/test_base.py
2021-10-05 16:57:39 -04:00

56 lines
1.3 KiB
Python

"""Tests for the playlist.data.base module."""
import dataclasses
import datetime
import typing
import pytest
from playlist.data import base
@dataclasses.dataclass
class Dummy(base.BaseData):
"""Dummy class for tests."""
name: str
some_id: int
calc: float
flag: bool
modified: datetime.datetime
@pytest.fixture
def dummyobj() -> Dummy:
"""Make a dummy object for testing."""
return Dummy(
name="Something",
some_id=1,
calc=0.1,
flag=True,
modified=datetime.datetime.now(),
)
@pytest.fixture
def dummydict(dummyobj: Dummy) -> dict[str, object]:
"""Make a dummy dictionary for testing."""
return {
"name": dummyobj.name,
"some_id": dummyobj.some_id,
"calc": dummyobj.calc,
"flag": dummyobj.flag,
"modified": "T".join(str(dummyobj.modified).split(" ")),
}
def test_load(dummydict: dict[str, object], dummyobj: Dummy) -> None:
"""Validate that <data class>.load() works."""
result: Dummy = Dummy.load(dummydict)
assert result == dummyobj
def test_dump(dummydict: dict[str, typing.Any], dummyobj: Dummy) -> None:
"""Validate that <data class instance>.dump() works."""
result = dummyobj.dump()
assert result == dummydict