"""
Port 1989 Test Script
"""

import requests
import json
import sys
import io

# Encoding düzelt
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')

SERVER_URL = "http://localhost:1989"

print("=" * 70)
print("  IDialogCevirici Server Test (Port 1989)")
print("=" * 70)

# Test 1: Health Check
print("\n[1/3] Health Check...")
print("-" * 70)

try:
    response = requests.get(f"{SERVER_URL}/health", timeout=5)
    if response.status_code == 200:
        print(f"  ✓ Server sağlıklı: {response.text}")
    else:
        print(f"  ✗ Hata: {response.status_code}")
except Exception as e:
    print(f"  ✗ Bağlantı hatası: {e}")
    sys.exit(1)

# Test 2: Status
print("\n[2/3] Status Check...")
print("-" * 70)

try:
    response = requests.get(f"{SERVER_URL}/status", timeout=5)
    if response.status_code == 200:
        status = response.json()
        print(f"  ✓ Server Bilgileri:")
        print(f"    - Status: {status.get('status')}")
        print(f"    - Server: {status.get('server')}")
        print(f"    - Version: {status.get('version')}")
        print(f"    - CATIA: {'✓ Bağlı' if status.get('catia_connected') else '✗ Bağlı değil'}")
        print(f"    - Timestamp: {status.get('timestamp')}")
    else:
        print(f"  ✗ Hata: {response.status_code}")
except Exception as e:
    print(f"  ✗ Hata: {e}")

# Test 3: WRL Dönüştürme hazır mı?
print("\n[3/3] WRL Dönüştürme Testi Hazırlığı...")
print("-" * 70)

print("""
  WRL dönüştürme için örnek kod:

  import requests

  response = requests.post('http://localhost:1989/convert', json={{
      'source_file': r'D:\\__sistem__\\Masaustu\\FikatiaV2024\\ERKEK.CATPart',
      'output_dir': r'D:\\__sistem__\\Masaustu\\FikatiaV2024\\IDialoglar\\IDialogCevirici',
      'output_name': 'ERKEK_converted'
  }})

  print(response.json())
""")

print("\n  Şimdi test etmek ister misiniz? (E/H): ", end='')
try:
    cevap = input().strip().upper()

    if cevap == 'E':
        print("\n  WRL Dönüştürme başlatılıyor...")
        print("-" * 70)

        SOURCE_FILE = r"D:\__sistem__\Masaustu\FikatiaV2024\ERKEK.CATPart"
        OUTPUT_DIR = r"D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IDialogCevirici"
        OUTPUT_NAME = "ERKEK_converted"

        print(f"  Kaynak: {SOURCE_FILE}")
        print(f"  Çıktı: {OUTPUT_DIR}\\{OUTPUT_NAME}.wrl")

        response = requests.post(f"{SERVER_URL}/convert", json={
            'source_file': SOURCE_FILE,
            'output_dir': OUTPUT_DIR,
            'output_name': OUTPUT_NAME
        }, timeout=120)

        if response.status_code == 200:
            result = response.json()
            print(f"\n  ✓ BAŞARILI!")
            print(f"    - Çıktı: {result.get('output_file')}")

            import os
            output_file = result.get('output_file')
            if output_file and os.path.exists(output_file):
                file_size = os.path.getsize(output_file)
                print(f"    - Boyut: {file_size:,} bytes")
        else:
            print(f"\n  ✗ Hata: {response.status_code}")
            print(f"  {response.text}")
except KeyboardInterrupt:
    print("\n\n  Test iptal edildi")
except Exception as e:
    print(f"\n  Hata: {e}")

print("\n" + "=" * 70)
print("  Test Tamamlandı")
print("=" * 70)
