From 0a9f09da6301e2a39e36898ec7a67ebc4fde3b1b Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Fri, 30 Jan 2026 05:31:02 +0000 Subject: [PATCH] Add exporters, utils, and tests --- .tests/test_recorder.py | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .tests/test_recorder.py diff --git a/.tests/test_recorder.py b/.tests/test_recorder.py new file mode 100644 index 0000000..9452657 --- /dev/null +++ b/.tests/test_recorder.py @@ -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