Base code

This commit is contained in:
Kunthawat Greethong
2026-01-08 22:39:53 +07:00
parent 697115c61a
commit c35fa52117
2169 changed files with 626670 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
#!/usr/bin/env python3
"""
Test script for LinkedIn Image Generation API endpoints
"""
import asyncio
import aiohttp
import json
async def test_image_generation_api():
"""Test the LinkedIn image generation API endpoints"""
base_url = "http://localhost:8000"
print("🧪 Testing LinkedIn Image Generation API...")
print("=" * 50)
# Test 1: Health Check
print("\n1⃣ Testing Health Check...")
async with aiohttp.ClientSession() as session:
async with session.get(f"{base_url}/api/linkedin/image-generation-health") as response:
if response.status == 200:
health_data = await response.json()
print(f"✅ Health Check: {health_data['status']}")
print(f" Services: {health_data['services']}")
print(f" Test Prompts: {health_data['test_prompts_generated']}")
else:
print(f"❌ Health Check Failed: {response.status}")
return
# Test 2: Generate Image Prompts
print("\n2⃣ Testing Image Prompt Generation...")
prompt_data = {
"content_type": "post",
"topic": "AI in Marketing",
"industry": "Technology",
"content": "This is a test LinkedIn post about AI in marketing. It demonstrates the image generation capabilities."
}
async with aiohttp.ClientSession() as session:
async with session.post(
f"{base_url}/api/linkedin/generate-image-prompts",
json=prompt_data
) as response:
if response.status == 200:
prompts = await response.json()
print(f"✅ Generated {len(prompts)} image prompts:")
for i, prompt in enumerate(prompts, 1):
print(f" {i}. {prompt['style']}: {prompt['description']}")
# Test 3: Generate Image from First Prompt
print("\n3⃣ Testing Image Generation...")
image_data = {
"prompt": prompts[0]['prompt'],
"content_context": {
"topic": prompt_data["topic"],
"industry": prompt_data["industry"],
"content_type": prompt_data["content_type"],
"content": prompt_data["content"],
"style": prompts[0]['style']
},
"aspect_ratio": "1:1"
}
async with session.post(
f"{base_url}/api/linkedin/generate-image",
json=image_data
) as img_response:
if img_response.status == 200:
result = await img_response.json()
if result.get('success'):
print(f"✅ Image Generated Successfully!")
print(f" Image ID: {result.get('image_id')}")
print(f" Style: {result.get('style')}")
print(f" Aspect Ratio: {result.get('aspect_ratio')}")
else:
print(f"❌ Image Generation Failed: {result.get('error')}")
else:
print(f"❌ Image Generation Request Failed: {img_response.status}")
error_text = await img_response.text()
print(f" Error: {error_text}")
else:
print(f"❌ Prompt Generation Failed: {response.status}")
error_text = await response.text()
print(f" Error: {error_text}")
if __name__ == "__main__":
print("🚀 Starting LinkedIn Image Generation API Tests...")
try:
asyncio.run(test_image_generation_api())
print("\n🎉 All tests completed!")
except Exception as e:
print(f"\n💥 Test failed with error: {e}")
import traceback
traceback.print_exc()