setu / module_c /test_generation.py
khagu's picture
chore: finally untrack large database files
3998131
"""
Verification Script for Module C
Tests the Letter Generation functionality.
"""
import sys
import os
from pathlib import Path
# Add project root to path
sys.path.append(str(Path(__file__).parent.parent))
from module_c.interface import LetterGenerationAPI
def test_module_c():
print("=== Testing Module C: Letter Generation ===")
api = LetterGenerationAPI()
# 1. Test Listing Templates
print("\n[1] Available Templates:")
templates = api.get_available_templates()
for t in templates:
print(f" - {t}")
if not templates:
print("ERROR: No templates found!")
return
# 2. Test Simple Generation
print("\n[2] Testing Simple Generation (CitizenshipbyDescentApplication.txt)")
target_template = "CitizenshipbyDescentApplication.txt"
if target_template in templates:
user_data = {
"Date": "2081-01-01",
"CDO Name": "Ram Prasad",
"District": "Kathmandu",
"Applicant Name": "Sita Sharma",
"Father's Name": "Hari Sharma",
"Mother's Name": "Gita Sharma",
"Age": "20",
"Municipality": "Kathmandu",
"Ward No": "10"
}
result = api.generate_letter(target_template, user_data)
if result['success']:
print("SUCCESS: Letter Generated")
print("--- Preview (First 200 chars) ---")
print(result['letter'][:200] + "...")
else:
print(f"FAILED: {result.get('error')}")
else:
print(f"SKIP: {target_template} not found")
# 3. Test Smart Generation (LLM)
print("\n[3] Testing Smart Generation (General Application to DAO.txt)")
target_template = "General Application to DAO.txt"
if target_template in templates:
description = "I am Ramesh from Lalitpur. I want to complain about the noise pollution in my area (Ward 5). It happens every night."
# Check if API key is present, otherwise warn
if not os.getenv("MISTRAL_API_KEY"):
print("WARNING: MISTRAL_API_KEY not set. Smart generation might fail or mock.")
result = api.generate_smart_letter(target_template, description)
if result['success']:
print("SUCCESS: Smart Letter Generated")
print("--- Preview (First 200 chars) ---")
print(result['letter'][:200] + "...")
else:
print(f"FAILED: {result.get('error')}")
else:
print(f"SKIP: {target_template} not found")
if __name__ == "__main__":
test_module_c()