master_adapt_detect/test_6786505_cli.py
2025-10-01 14:32:55 -05:00

85 lines
No EOL
3 KiB
Python

#!/usr/bin/env python3
"""
Test script to specifically process 6786505.jpg with the CLI
"""
import subprocess
import json
import sys
from pathlib import Path
def test_6786505_processing():
"""Test processing 6786505.jpg with the CLI"""
print("=" * 60)
print("TESTING 6786505.jpg PROCESSING WITH CLI")
print("=" * 60)
# First backup the layouts directory
layouts_dir = Path("layouts")
all_layouts = list(layouts_dir.glob("*.jpg"))
# Temporarily remove other layouts so --test processes only 6786505.jpg
temp_dir = Path("temp_layouts")
temp_dir.mkdir(exist_ok=True)
# Move all layouts except 6786505.jpg to temp directory
for layout in all_layouts:
if layout.name != "6786505.jpg":
layout.rename(temp_dir / layout.name)
try:
# Run the CLI with split mode
print("Running CLI with split mode...")
result = subprocess.run([
"python", "cli.py",
"--test", "--split", "--openai"
],
capture_output=True, text=True, cwd=".",
env={"PATH": "/Users/michael.clervi/Documents/projects/master_adapt_detect/venv/bin:/usr/local/bin:/usr/bin:/bin"}
)
print("CLI Output:")
print(result.stdout)
if result.stderr:
print("CLI Errors:")
print(result.stderr)
# Check if results file was created
results_file = Path("results/test_results_openai_split.json")
if results_file.exists():
with open(results_file, 'r') as f:
results = json.load(f)
print(f"\n📊 Results Analysis:")
print(f"Total layouts processed: {results.get('total_layouts', 0)}")
# Check the layout results
layout_results = results.get('layout_results', {})
for layout_name, layout_data in layout_results.items():
print(f"\n📁 Layout: {layout_name}")
print(f" Panel count: {layout_data.get('panel_count', 'unknown')}")
print(f" Splits generated: {layout_data.get('splits_generated', 'unknown')}")
print(f" Detected masters: {len(layout_data.get('detected_masters', []))}")
# Check if we got 14 panels
if layout_data.get('panel_count') == 14:
print(f" ✅ SUCCESS: Correctly detected 14 panels!")
return True
else:
print(f" ❌ Expected 14 panels, got {layout_data.get('panel_count')}")
return False
else:
print("❌ Results file not found")
return False
finally:
# Restore all layouts
for layout in temp_dir.glob("*.jpg"):
layout.rename(layouts_dir / layout.name)
temp_dir.rmdir()
return False
if __name__ == "__main__":
success = test_6786505_processing()
sys.exit(0 if success else 1)