Files
pyGUI/tests/test_session_controller.py
T

49 lines
1.5 KiB
Python

import pytest
from unittest.mock import MagicMock, patch
from pygui.backend.controllers.session_controller import SessionController
@pytest.fixture
def controller():
return SessionController()
def test_initial_default(controller):
assert controller.mode == "review"
assert controller.state == "idle"
assert controller.recording == False
def test_playback_flow(controller):
controller.loadFile("tests/fixtures/sample_stream.csv")
controller.play()
initial_index = controller.frameIndex
controller._advance()
assert controller.frameIndex == initial_index + 1
def test_speed_control(controller):
controller.setSpeed(2.0)
interval = controller._next_interval_ms()
controller.setSpeed(0.5)
assert controller._next_interval_ms() > interval
def test_seek(controller):
controller.loadFile("tests/fixtures/sample_stream.csv")
controller.seek(1)
assert controller.frameIndex == 1
def test_step_forward(controller):
controller.loadFile("tests/fixtures/sample_stream.csv")
initial = controller.frameIndex
controller.step(1)
assert controller.frameIndex == initial + 1
def test_step_backward(controller):
controller.loadFile("tests/fixtures/sample_stream.csv")
controller.seek(2)
controller.step(-1)
assert controller.frameIndex == 1
def test_pause_stop_timer(controller):
controller.loadFile("tests/fixtures/sample_stream.csv")
controller.seek(2)
controller.stop()
assert controller.frameIndex == 0