"""
IDialogCevirici Console Test

Dialog GUI olmadan sadece modül testlerini yapar
"""

import sys
import os
import io

# Encoding düzelt
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')

print("=" * 70)
print("  IDialogCevirici - Console Test")
print("=" * 70)

# Test 1: Import kontrolleri
print("\n[1/4] Import kontrolleri...")
print("-" * 70)

try:
    import win32com.client
    print("  ✓ win32com.client")
except ImportError as e:
    print(f"  ✗ win32com.client: {e}")
    sys.exit(1)

try:
    from PyQt6.QtWidgets import QApplication
    from PyQt6.QtCore import Qt
    print("  ✓ PyQt6")
except ImportError as e:
    print(f"  ✗ PyQt6: {e}")
    sys.exit(1)

# Test 2: CATIA bağlantısı
print("\n[2/4] CATIA bağlantısı...")
print("-" * 70)

try:
    catia = win32com.client.Dispatch("Catia.Application")
    print(f"  ✓ CATIA: {catia.Caption}")

    try:
        doc = catia.ActiveDocument
        print(f"  ✓ Aktif Döküman: {doc.Name}")
    except:
        print(f"  ⚠ Aktif döküman yok")
except Exception as e:
    print(f"  ✗ CATIA bağlantı hatası: {e}")
    sys.exit(1)

# Test 3: Proje modülleri
print("\n[3/4] Proje modülleri...")
print("-" * 70)

current_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.dirname(os.path.dirname(current_dir))

if project_root not in sys.path:
    sys.path.insert(0, project_root)

try:
    from IFikatia import IFikatia
    print("  ✓ IFikatia")
except ImportError as e:
    print(f"  ✗ IFikatia: {e}")

try:
    from IDokuman import IDokuman
    print("  ✓ IDokuman")
except ImportError as e:
    print(f"  ✗ IDokuman: {e}")

# Test 4: IDialogCevirici modülü
print("\n[4/4] IDialogCevirici modülü...")
print("-" * 70)

if current_dir not in sys.path:
    sys.path.insert(0, current_dir)

try:
    import IDialogCevirici as module
    print("  ✓ IDialogCevirici modülü import edildi")

    # Sınıfı kontrol et
    IDialogCevirici = module.IDialogCevirici
    print("  ✓ IDialogCevirici sınıfı bulundu")

    # Server sınıflarını kontrol et
    if hasattr(module, 'ThreadedHTTPServer'):
        print("  ✓ ThreadedHTTPServer sınıfı bulundu")

    if hasattr(module, 'CeviriciRequestHandler'):
        print("  ✓ CeviriciRequestHandler sınıfı bulundu")

    print(f"\n  IDialogCevirici hazır!")
    print(f"  Dialog oluşturmak için:")
    print(f"    dialog = IDialogCevirici(Catia=catia)")

except Exception as e:
    print(f"  ✗ Import hatası: {e}")
    import traceback
    traceback.print_exc()
    sys.exit(1)

# Özet
print("\n" + "=" * 70)
print("  ✓ TÜM TESTLER BAŞARILI!")
print("=" * 70)

print("\nDialog'u açmak için:")
print("  python -c \"exec(open('test_open_dialog.py').read())\"")
print("\nVeya CATIA'dan:")
print("  1. python registerCom.py")
print("  2. CATIA'da: CreateObject('FikoYT.IDialogCevirici').Calistir(CATIA)")
