Add exporters, utils, and tests
Some checks failed
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled

This commit is contained in:
2026-01-30 05:31:02 +00:00
parent 7292ec9371
commit 0a9f09da63

48
.tests/test_recorder.py Normal file
View File

@@ -0,0 +1,48 @@
"""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