Add exporters, utils, and tests
This commit is contained in:
48
.tests/test_recorder.py
Normal file
48
.tests/test_recorder.py
Normal 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
|
||||||
Reference in New Issue
Block a user