#!/usr/bin/env python """Test generate_content for Writer tasks""" import os import sys import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'igny8_core.settings') django.setup() from django.contrib.auth import get_user_model from igny8_core.business.content.models import Tasks from igny8_core.business.content.services.content_generation_service import ContentGenerationService print("=" * 80) print("TESTING WRITER GENERATE_CONTENT") print("=" * 80) User = get_user_model() user = User.objects.filter(email='dev@igny8.com').first() if not user: print("❌ User not found") sys.exit(1) account = user.account if hasattr(user, 'account') else None if not account: print("❌ No account found for user") sys.exit(1) print(f"✓ User: {user.email}") print(f"✓ Account: {account.id}") # Get tasks tasks = Tasks.objects.filter(account=account, status='queued')[:5] print(f"\n✓ Found {tasks.count()} queued tasks") if tasks.exists(): task = tasks.first() print(f"\nTesting with task:") print(f" - ID: {task.id}") print(f" - Title: {task.title}") print(f" - Status: {task.status}") print(f" - Cluster: {task.cluster.name if task.cluster else 'None'}") print("\nCalling generate_content service...") service = ContentGenerationService() try: result = service.generate_content([task.id], account) print(f"\n✓ SUCCESS!") print(f"Result: {result}") except Exception as e: print(f"\n❌ ERROR: {e}") import traceback traceback.print_exc() else: print("\n⚠️ No queued tasks found. Creating a test task...") from igny8_core.modules.planner.models import Clusters cluster = Clusters.objects.filter(account=account).first() if not cluster: print("❌ No clusters found. Cannot create test task.") sys.exit(1) task = Tasks.objects.create( account=account, site=cluster.site, sector=cluster.sector, cluster=cluster, title="Test Article: Benefits of Organic Cotton Bedding", description="Comprehensive guide covering health benefits, environmental impact, and buying guide", content_type='post', content_structure='article', status='queued' ) print(f"✓ Created test task: {task.id} - {task.title}") print("\nCalling generate_content service...") service = ContentGenerationService() try: result = service.generate_content([task.id], account) print(f"\n✓ SUCCESS!") print(f"Result: {result}") except Exception as e: print(f"\n❌ ERROR: {e}") import traceback traceback.print_exc() print("\n" + "=" * 80) print("TEST COMPLETE") print("=" * 80)