80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
"""
|
|
Tests for engine.display module.
|
|
"""
|
|
|
|
from engine.display import NullDisplay, TerminalDisplay
|
|
|
|
|
|
class TestDisplayProtocol:
|
|
"""Test that display backends satisfy the Display protocol."""
|
|
|
|
def test_terminal_display_is_display(self):
|
|
"""TerminalDisplay satisfies Display protocol."""
|
|
display = TerminalDisplay()
|
|
assert hasattr(display, "init")
|
|
assert hasattr(display, "show")
|
|
assert hasattr(display, "clear")
|
|
assert hasattr(display, "cleanup")
|
|
|
|
def test_null_display_is_display(self):
|
|
"""NullDisplay satisfies Display protocol."""
|
|
display = NullDisplay()
|
|
assert hasattr(display, "init")
|
|
assert hasattr(display, "show")
|
|
assert hasattr(display, "clear")
|
|
assert hasattr(display, "cleanup")
|
|
|
|
|
|
class TestTerminalDisplay:
|
|
"""Tests for TerminalDisplay class."""
|
|
|
|
def test_init_sets_dimensions(self):
|
|
"""init stores terminal dimensions."""
|
|
display = TerminalDisplay()
|
|
display.init(80, 24)
|
|
assert display.width == 80
|
|
assert display.height == 24
|
|
|
|
def test_show_returns_none(self):
|
|
"""show returns None after writing to stdout."""
|
|
display = TerminalDisplay()
|
|
display.width = 80
|
|
display.height = 24
|
|
display.show(["line1", "line2"])
|
|
|
|
def test_clear_does_not_error(self):
|
|
"""clear works without error."""
|
|
display = TerminalDisplay()
|
|
display.clear()
|
|
|
|
def test_cleanup_does_not_error(self):
|
|
"""cleanup works without error."""
|
|
display = TerminalDisplay()
|
|
display.cleanup()
|
|
|
|
|
|
class TestNullDisplay:
|
|
"""Tests for NullDisplay class."""
|
|
|
|
def test_init_stores_dimensions(self):
|
|
"""init stores dimensions."""
|
|
display = NullDisplay()
|
|
display.init(100, 50)
|
|
assert display.width == 100
|
|
assert display.height == 50
|
|
|
|
def test_show_does_nothing(self):
|
|
"""show discards buffer without error."""
|
|
display = NullDisplay()
|
|
display.show(["line1", "line2", "line3"])
|
|
|
|
def test_clear_does_nothing(self):
|
|
"""clear does nothing."""
|
|
display = NullDisplay()
|
|
display.clear()
|
|
|
|
def test_cleanup_does_nothing(self):
|
|
"""cleanup does nothing."""
|
|
display = NullDisplay()
|
|
display.cleanup()
|