test: update tests for cache mode terminology

Rename database mode tests to cache mode to reflect new architecture:
- Replace USE_DATABASE with USE_CACHE references
- Update test assertions for cache behavior
- Maintain backward compatibility testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-03-14 13:41:05 -04:00
parent 4405f199ba
commit fc99173028
2 changed files with 145 additions and 35 deletions
+79 -25
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
"""Test script to verify database mode functionality.
"""Test script to verify database caching functionality.
This script tests the LLMAnalyzer in database mode without requiring
This script tests the LLMAnalyzer with database caching without requiring
actual API keys or patent downloads.
"""
@@ -9,28 +9,29 @@ from SPARC.llm import LLMAnalyzer
from SPARC.database import DatabaseClient
from SPARC import config
def test_database_mode():
"""Test that database mode stores messages correctly."""
print("Testing Database Mode")
def test_database_storage():
"""Test that messages are always stored in database."""
print("Testing Database Storage & Caching")
print("=" * 70)
# Initialize analyzer in database mode
print("\n1. Initializing LLMAnalyzer in database mode...")
analyzer = LLMAnalyzer(use_database=True)
# Initialize analyzer (database is always used)
print("\n1. Initializing LLMAnalyzer...")
analyzer = LLMAnalyzer(use_cache=True)
print(f" - use_database: {analyzer.use_database}")
print(f" - use_cache: {analyzer.use_cache}")
print(f" - db_client: {analyzer.db_client is not None}")
print(f" - client (API): {analyzer.client is not None}")
# Test single patent analysis
print("\n2. Testing single patent analysis (database mode)...")
# Test single patent analysis (without API key, stores placeholder)
print("\n2. Testing single patent analysis (no API key)...")
result = analyzer.analyze_patent_content(
patent_content="Test patent content about semiconductor innovation",
company_name="TestCorp"
)
print(f" Result: {result}")
print(f" Result: {result[:80]}...")
# Test portfolio analysis
print("\n3. Testing portfolio analysis (database mode)...")
print("\n3. Testing portfolio analysis (no API key)...")
test_patents = [
{"patent_id": "US001", "content": "First test patent"},
{"patent_id": "US002", "content": "Second test patent"},
@@ -39,7 +40,7 @@ def test_database_mode():
patents_data=test_patents,
company_name="TestCorp"
)
print(f" Result: {result}")
print(f" Result: {result[:80]}...")
# Verify messages were stored
print("\n4. Verifying messages were stored...")
@@ -48,7 +49,8 @@ def test_database_mode():
print(f" Found {len(messages)} stored messages")
for msg in messages:
print(f" - ID: {msg['id']}, Type: {msg['analysis_type']}, Timestamp: {msg['timestamp']}")
cached_status = "CACHED" if msg.get('is_cached') else "NEW"
print(f" - ID: {msg['id']}, Type: {msg['analysis_type']}, Status: {cached_status}")
# Get analytics
print("\n5. Getting analytics...")
@@ -58,18 +60,68 @@ def test_database_mode():
print(f" By type: {analytics['by_type']}")
print("\n" + "=" * 70)
print("Database mode test completed successfully!")
print("Database storage test completed successfully!")
def test_api_mode():
"""Test that API mode initializes correctly."""
print("\nTesting API Mode")
def test_caching():
"""Test that caching works correctly."""
print("\nTesting Cache Functionality")
print("=" * 70)
print("\n1. Initializing LLMAnalyzer in API mode...")
analyzer = LLMAnalyzer(use_database=False, test_mode=True)
db_client = DatabaseClient(config.database_url)
db_client.initialize_schema()
# Store a fake cached response
print("\n1. Storing a test response in database...")
test_prompt = "Test prompt for caching"
test_response = "This is a cached response from previous API call"
db_client.store_message(
prompt=test_prompt,
response=test_response,
company_name="CacheTest",
analysis_type="test",
model="test-model"
)
# Try to retrieve from cache
print("\n2. Testing cache retrieval...")
cached = db_client.get_cached_response(
prompt=test_prompt,
company_name="CacheTest",
analysis_type="test"
)
if cached:
print(f" Cache hit! Response: {cached['response']}")
else:
print(" Cache miss (unexpected)")
# Test cache miss
print("\n3. Testing cache miss...")
cached = db_client.get_cached_response(
prompt="Different prompt",
company_name="CacheTest",
analysis_type="test"
)
if cached:
print(" Unexpected cache hit")
else:
print(" Cache miss as expected")
print("\n" + "=" * 70)
print("Cache test completed successfully!")
def test_test_mode():
"""Test that test mode works correctly."""
print("\nTesting Test Mode")
print("=" * 70)
print("\n1. Initializing LLMAnalyzer in test mode...")
analyzer = LLMAnalyzer(test_mode=True)
print(f" - use_database: {analyzer.use_database}")
print(f" - test_mode: {analyzer.test_mode}")
print(f" - db_client: {analyzer.db_client is not None}")
print("\n2. Testing single patent analysis (test mode)...")
result = analyzer.analyze_patent_content(
@@ -79,9 +131,11 @@ def test_api_mode():
print(f" Result: {result}")
print("\n" + "=" * 70)
print("API mode test completed successfully!")
print("Test mode test completed successfully!")
if __name__ == "__main__":
test_database_mode()
test_database_storage()
print("\n")
test_api_mode()
test_caching()
print("\n")
test_test_mode()