#!/usr/bin/env python3
"""AST変換ツール動作検証テスト"""

from pathlib import Path


def create_test_file():
    """テスト用ファイル作成"""
    test_content = '''#!/usr/bin/env python3
"""テスト用ファイル"""

def test_function():
    print("これはprint()のテストです")
    message = "Hello World"
    print(message)
    print(f"Format: {message}")

    # console_serviceのテスト
    console_service.print_("これはconsole_service.print_()のテストです")
    console_service.print_(f"Format: {message}")

if __name__ == "__main__":
    test_function()
'''

    test_file = Path("test_migration_sample.py")
    test_file.write_text(test_content, encoding="utf-8")

    print("✅ テスト用ファイル作成完了: test_migration_sample.py")


def test_ast_migration_tool():
    """AST変換ツールテスト"""
    print("\n=== Test 2: AST変換ツール動作テスト ===")

    # テストファイル作成
    create_test_file()

    # 変換前の内容確認
    print("\n📄 変換前の内容:")
    sample_file = Path("test_migration_sample.py")

    print(sample_file.read_text(encoding="utf-8"))

    # AST変換ツール実行
    print("\n🔄 AST変換ツール実行中...")
    import subprocess
    result = subprocess.run([
        "python",
        "src/noveler/tools/console_migration_tool.py",
        "test_migration_sample.py"
    ], check=False, capture_output=True, text=True)

    print("STDOUT:", result.stdout)
    if result.stderr:
        print("STDERR:", result.stderr)

    # 変換後の内容確認
    print("\n📄 変換後の内容:")
    try:
        print(sample_file.read_text(encoding="utf-8"))
        print("✅ AST変換成功")
    except FileNotFoundError:
        print("❌ 変換後ファイルが見つかりません")

    # バックアップファイル確認
    try:
        backup_file = Path("test_migration_sample.py.backup")
        backup_file.read_text(encoding="utf-8")
        print("✅ バックアップファイル作成確認")
    except FileNotFoundError:
        print("❌ バックアップファイルが見つかりません")


def cleanup():
    """テストファイル削除"""
    files_to_remove = [
        Path("test_migration_sample.py"),
        Path("test_migration_sample.py.backup")
    ]

    for file_path in files_to_remove:
        try:
            file_path.unlink()
            print(f"🗑️  削除: {file_path}")
        except FileNotFoundError:
            pass


if __name__ == "__main__":
    test_ast_migration_tool()
    print("\n🧹 テストファイル削除中...")
    cleanup()
    print("🎯 AST変換ツールテスト完了!")
