tests: dog_art frames + animation
This commit is contained in:
+21
-4
@@ -20,6 +20,7 @@ from selectel_ml_tui.models import (
|
|||||||
)
|
)
|
||||||
from selectel_ml_tui.services import DashboardData
|
from selectel_ml_tui.services import DashboardData
|
||||||
from selectel_ml_tui.storage import Storage
|
from selectel_ml_tui.storage import Storage
|
||||||
|
from selectel_ml_tui.ui import dog_art
|
||||||
from selectel_ml_tui.ui.app import DogLoader, SelectelMLTUI
|
from selectel_ml_tui.ui.app import DogLoader, SelectelMLTUI
|
||||||
|
|
||||||
|
|
||||||
@@ -389,9 +390,25 @@ async def test_dog_loader_animates(tmp_path) -> None:
|
|||||||
loader.add_class("visible")
|
loader.add_class("visible")
|
||||||
loader.start()
|
loader.start()
|
||||||
assert loader.running
|
assert loader.running
|
||||||
first = loader.render()
|
assert loader.frame_count == dog_art.FRAME_COUNT
|
||||||
await pilot.pause(0.4)
|
first_frame = loader.frame
|
||||||
second = loader.render()
|
first = str(loader.render())
|
||||||
assert first != second
|
await pilot.pause(0.3)
|
||||||
|
assert loader.frame != first_frame
|
||||||
|
assert str(loader.render()) != first
|
||||||
|
# дорожка из лапок присутствует
|
||||||
|
assert "🐾" in str(loader.render())
|
||||||
loader.stop()
|
loader.stop()
|
||||||
assert not loader.running
|
assert not loader.running
|
||||||
|
|
||||||
|
|
||||||
|
def test_dog_art_frames() -> None:
|
||||||
|
frames = dog_art.decode_frames()
|
||||||
|
assert len(frames) == dog_art.FRAME_COUNT
|
||||||
|
size = dog_art.WIDTH * dog_art.PX_HEIGHT
|
||||||
|
assert all(len(f) == size for f in frames)
|
||||||
|
# индексы палитры в допустимом диапазоне, фон = 0
|
||||||
|
assert all(b < len(dog_art.PALETTE) for f in frames for b in f)
|
||||||
|
assert dog_art.FRAME_MS == 40
|
||||||
|
# кадры различаются (анимация)
|
||||||
|
assert len({bytes(f) for f in frames}) > 1
|
||||||
|
|||||||
Reference in New Issue
Block a user