Files
term-flow/.tests/test_recorder.py
7000pctAUTO 0a9f09da63
Some checks failed
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
Add exporters, utils, and tests
2026-01-30 05:31:02 +00:00

49 lines
1.4 KiB
Python

"""Tests for session recorder."""
import tempfile
from pathlib import Path
import pytest
from termflow.core.recorder import SessionRecorder, InteractiveRecorder
from termflow.core.session import Session, Command
class TestSessionRecorder:
"""Test session recorder."""
def test_record_from_history(self, tmp_path):
"""Test recording from shell history."""
db_path = str(tmp_path / "test.db")
recorder = SessionRecorder(db_path)
session = recorder.record_from_history("test-session", count=10)
assert session.name == "test-session"
assert isinstance(session, Session)
def test_save_to_database(self, tmp_path):
"""Test saving session to database."""
from termflow.core.database import SessionDatabase
db_path = str(tmp_path / "test.db")
recorder = SessionRecorder(db_path)
session = Session(name="test-save")
session.add_command(Command(command="ls"))
recorder._current_session = session
saved = recorder.save_to_database()
assert saved.id is not None
assert saved.name == "test-save"
class TestInteractiveRecorder:
"""Test interactive recorder."""
def test_init(self, tmp_path):
"""Test interactive recorder initialization."""
db_path = str(tmp_path / "test.db")
recorder = InteractiveRecorder(db_path)
assert recorder.db_path == db_path