Spaces:
Runtime error
Runtime error
File size: 3,282 Bytes
910f2aa |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
#!/usr/bin/env python3
"""
DittoTalkingHead API テストスクリプト
簡単なAPIテストを実行します
"""
import logging
import sys
from test_api_client import TalkingHeadAPIClient
# ロギング設定
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
def test_basic_functionality():
"""基本機能のテスト"""
logging.info("=== 基本機能テスト開始 ===")
# クライアント初期化
client = TalkingHeadAPIClient()
# サンプルファイルを使用
audio_path = "example/audio.wav"
image_path = "example/image.png"
try:
# 動画生成
logging.info(f"接続開始: O-ken5481/talkingAvater_bgk")
logging.info(f"ファイルアップロード: {audio_path}, {image_path}")
logging.info("処理開始...")
result = client.generate_video(audio_path, image_path)
video_path, status = result
if video_path:
logging.info("動画生成完了")
# タイムスタンプ付きで保存
if isinstance(video_path, dict) and 'video' in video_path:
saved_path = client.save_with_timestamp(video_path['video'])
if saved_path:
logging.info(f"保存完了: {saved_path}")
print(f"\n✅ テスト成功!")
print(f"ステータス: {status}")
print(f"保存先: {saved_path}")
return True
print(f"\n❌ テスト失敗")
print(f"ステータス: {status}")
return False
except Exception as e:
logging.error(f"エラー発生: {e}")
return False
def test_error_handling():
"""エラーハンドリングのテスト"""
logging.info("\n=== エラーハンドリングテスト開始 ===")
client = TalkingHeadAPIClient()
# 存在しないファイルでテスト
result = client.generate_video("nonexistent.wav", "nonexistent.png")
video_path, status = result
if video_path is None and "見つかりません" in status:
logging.info("✅ ファイル不在エラーを正しく検出")
return True
else:
logging.error("❌ エラーハンドリングが正しく動作していません")
return False
def main():
"""メイン関数"""
print("DittoTalkingHead API テスト")
print("=" * 50)
# 基本機能テスト
basic_test_passed = test_basic_functionality()
# エラーハンドリングテスト
error_test_passed = test_error_handling()
# 結果サマリー
print("\n" + "=" * 50)
print("テスト結果:")
print(f"- 基本機能テスト: {'✅ 成功' if basic_test_passed else '❌ 失敗'}")
print(f"- エラーハンドリングテスト: {'✅ 成功' if error_test_passed else '❌ 失敗'}")
# 終了コード
if basic_test_passed and error_test_passed:
print("\n全てのテストが成功しました! 🎉")
sys.exit(0)
else:
print("\n一部のテストが失敗しました。")
sys.exit(1)
if __name__ == "__main__":
main() |