atles / test_scratchpad_integration.py
spartan8806's picture
ATLES codebase - Source code only
99b8067
#!/usr/bin/env python3
"""
Test script to verify ATLES Scratchpad System integration
"""
import sys
from pathlib import Path
# Add atles to path
sys.path.insert(0, str(Path(__file__).parent))
def test_imports():
"""Test that all scratchpad components can be imported"""
print("=" * 60)
print("Testing ATLES Scratchpad System Integration")
print("=" * 60)
try:
print("\n1. Testing autonomous module imports...")
from atles.autonomous import Scratchpad, TokenizedScratchpad, ScratchpadArchiver
print(" [OK] Scratchpad")
print(" [OK] TokenizedScratchpad")
print(" [OK] ScratchpadArchiver")
print("\n2. Testing thinking client import...")
from atles.thinking_client import create_thinking_constitutional_client
print(" [OK] create_thinking_constitutional_client")
print("\n3. Testing package-level imports...")
from atles import (
create_thinking_constitutional_client,
Scratchpad,
TokenizedScratchpad,
ScratchpadArchiver
)
print(" [OK] All components available from atles package")
print("\n4. Testing scratchpad functionality...")
import tempfile
import shutil
# Create temp directories
temp_dir = Path(tempfile.mkdtemp())
session_dir = temp_dir / "active"
archive_dir = temp_dir / "archive"
try:
# Test Scratchpad
pad = Scratchpad(str(session_dir), str(archive_dir))
pad.start_thought("Test question")
pad.write_thought("initial", {"text": "Test response", "confidence": 0.8})
pad.write_thought("final", {"text": "Final response", "ready": True})
pad.finalize_thought()
thoughts = pad.read_thoughts()
assert len(thoughts) == 1, "Should have 1 thought"
print(" [OK] Scratchpad write/read works")
# Test stats
stats = pad.get_session_stats()
assert stats["num_thoughts"] == 1, "Stats should show 1 thought"
print(" [OK] Session stats work")
# Test archiver
archiver = ScratchpadArchiver(str(session_dir), str(archive_dir))
archive_stats = archiver.get_archive_stats()
print(" [OK] ScratchpadArchiver works")
finally:
# Cleanup
shutil.rmtree(temp_dir)
print("\n5. Checking configuration file...")
config_path = Path("config/scratchpad_config.yaml")
if config_path.exists():
print(f" [OK] Configuration file exists: {config_path}")
else:
print(f" [WARN] Configuration file not found: {config_path}")
print(" (This is OK - will use defaults)")
print("\n6. Checking documentation...")
docs = [
"docs/SCRATCHPAD_SYSTEM.md",
"docs/SCRATCHPAD_QUICKSTART.md",
"docs/SCRATCHPAD_INTEGRATION_COMPLETE.md"
]
for doc in docs:
doc_path = Path(doc)
if doc_path.exists():
print(f" [OK] {doc}")
else:
print(f" [FAIL] {doc} (missing)")
print("\n" + "=" * 60)
print("[SUCCESS] ALL TESTS PASSED!")
print("=" * 60)
print("\nScratchpad System is ready to use!")
print("\nQuick start:")
print(" from atles import create_thinking_constitutional_client")
print(" client = create_thinking_constitutional_client()")
print(" response = client.generate('llama3.2', 'Your question')")
print("\nSee docs/SCRATCHPAD_QUICKSTART.md for more information.")
return True
except Exception as e:
print(f"\n[FAIL] TEST FAILED: {e}")
import traceback
traceback.print_exc()
return False
if __name__ == "__main__":
success = test_imports()
sys.exit(0 if success else 1)