Spaces:
Runtime error
Runtime error
#!/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() |