Download tests/conftest.py from engineofperplexity/openclaw-session-amplifier: direct link, hf CLI and curl.
- Browser
- Download file 5.26 kB
-
https://huggingface.co/engineofperplexity/openclaw-session-amplifier/resolve/main/tests/conftest.py
- Command line
-
hf download hf://engineofperplexity/openclaw-session-amplifier/tests/conftest.py
-
curl -L -o conftest.py https://huggingface.co/engineofperplexity/openclaw-session-amplifier/resolve/main/tests/conftest.py
5.26 kB
| """Shared test fixtures for Session Amplifier tests.""" | |
| import json | |
| import sqlite3 | |
| import sys | |
| import os | |
| import pytest | |
| # Add project root to path so imports work as they do in production | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) | |
| # Override settings before importing anything that uses them | |
| os.environ.setdefault("OPENCLAW_AGENTS_ROOT", os.path.join(os.path.dirname(__file__), "_fake_agents")) | |
| os.environ.setdefault("OPENCLAW_STATE_DIR", os.path.join(os.path.dirname(__file__), "_fake_state")) | |
| os.environ.setdefault("SESSION_AMPLIFIER_DB_PATH", ":memory:") | |
| def in_memory_db(): | |
| """Create an in-memory SQLite DB with the session amplifier schema.""" | |
| conn = sqlite3.connect(":memory:") | |
| conn.row_factory = sqlite3.Row | |
| conn.executescript(""" | |
| CREATE TABLE IF NOT EXISTS spooled_entries ( | |
| id INTEGER PRIMARY KEY, | |
| session_id TEXT NOT NULL, | |
| agent_id TEXT NOT NULL, | |
| entry_idx INTEGER NOT NULL, | |
| entry_type TEXT, | |
| role TEXT, | |
| timestamp TEXT, | |
| tool_name TEXT, | |
| clean_text TEXT, | |
| original_length INTEGER, | |
| preview TEXT, | |
| is_error INTEGER DEFAULT 0, | |
| indexed_at TEXT DEFAULT (datetime('now')), | |
| UNIQUE(session_id, entry_idx) | |
| ); | |
| CREATE TABLE IF NOT EXISTS spool_state ( | |
| key TEXT PRIMARY KEY, | |
| value TEXT | |
| ); | |
| CREATE TABLE IF NOT EXISTS review_reports ( | |
| id INTEGER PRIMARY KEY, | |
| review_id TEXT UNIQUE, | |
| generated_at TEXT, | |
| period_from TEXT, | |
| period_to TEXT, | |
| report_json TEXT | |
| ); | |
| """) | |
| yield conn | |
| conn.close() | |
| def sample_transcript_lines(): | |
| """Sample JSONL transcript lines for testing.""" | |
| return [ | |
| json.dumps({"type": "session", "id": "test-session-001"}), | |
| json.dumps({ | |
| "type": "message", | |
| "timestamp": "2026-04-05T10:00:00Z", | |
| "message": { | |
| "role": "user", | |
| "content": [{"type": "text", "text": "Hello, can you help me?"}], | |
| }, | |
| }), | |
| json.dumps({ | |
| "type": "message", | |
| "timestamp": "2026-04-05T10:00:05Z", | |
| "message": { | |
| "role": "assistant", | |
| "content": [{"type": "text", "text": "Of course! Let me look into that for you."}], | |
| }, | |
| }), | |
| json.dumps({ | |
| "type": "message", | |
| "timestamp": "2026-04-05T10:00:10Z", | |
| "message": { | |
| "role": "toolResult", | |
| "content": [{"type": "text", "text": "file contents: line1\nline2\nline3"}], | |
| "toolName": "read_file", | |
| }, | |
| }), | |
| json.dumps({ | |
| "type": "message", | |
| "timestamp": "2026-04-05T10:00:15Z", | |
| "message": { | |
| "role": "toolResult", | |
| "content": [{"type": "text", "text": ""}], | |
| "toolName": "write_file", | |
| "isError": True, | |
| }, | |
| }), | |
| json.dumps({ | |
| "type": "message", | |
| "timestamp": "2026-04-05T10:00:20Z", | |
| "message": { | |
| "role": "assistant", | |
| "content": [{"type": "text", "text": "I'll use the read_file tool to check."}], | |
| }, | |
| }), | |
| ] | |
| def sample_spooled_entries(): | |
| """Pre-processed spooled entry dicts for reviewer tests.""" | |
| return [ | |
| { | |
| "session_id": "s1", | |
| "agent_id": "ops", | |
| "entry_idx": 1, | |
| "entry_type": "message", | |
| "role": "user", | |
| "timestamp": "2026-04-05T10:00:00Z", | |
| "tool_name": "", | |
| "clean_text": "Help me debug this issue", | |
| "original_length": 25, | |
| "preview": "Help me debug this issue", | |
| "is_error": 0, | |
| }, | |
| { | |
| "session_id": "s1", | |
| "agent_id": "ops", | |
| "entry_idx": 2, | |
| "entry_type": "message", | |
| "role": "assistant", | |
| "timestamp": "2026-04-05T10:00:05Z", | |
| "tool_name": "", | |
| "clean_text": "I'll use the read_file tool to inspect the code.", | |
| "original_length": 48, | |
| "preview": "I'll use the read_file tool to inspect the code.", | |
| "is_error": 0, | |
| }, | |
| { | |
| "session_id": "s1", | |
| "agent_id": "ops", | |
| "entry_idx": 3, | |
| "entry_type": "message", | |
| "role": "toolResult", | |
| "timestamp": "2026-04-05T10:00:10Z", | |
| "tool_name": "read_file", | |
| "clean_text": "x" * 5000, | |
| "original_length": 5000, | |
| "preview": "x" * 300, | |
| "is_error": 0, | |
| }, | |
| { | |
| "session_id": "s1", | |
| "agent_id": "ops", | |
| "entry_idx": 4, | |
| "entry_type": "message", | |
| "role": "toolResult", | |
| "timestamp": "2026-04-05T10:00:15Z", | |
| "tool_name": "write_file", | |
| "clean_text": "", | |
| "original_length": 0, | |
| "preview": "", | |
| "is_error": 1, | |
| }, | |
| ] | |