#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试角色greeting缓存功能 """ import os import sys import json from pathlib import Path # 添加项目路径 sys.path.append('.') from audio_processes import ( get_greeting_cache_path, greeting_cache_exists, load_cached_audio, save_greeting_cache ) def test_cache_functions(): """测试缓存功能""" print("🧪 测试角色greeting缓存功能") print("=" * 50) # 测试角色名称 test_character = "libai" test_audio_data = b"test_audio_data_" + os.urandom(100) # 1. 测试缓存路径生成 print("\n1️⃣ 测试缓存路径生成") cache_path = get_greeting_cache_path(test_character) print(f" 缓存路径: {cache_path}") # 2. 测试缓存存在检查 print("\n2️⃣ 测试缓存存在检查") exists_before = greeting_cache_exists(test_character) print(f" 缓存存在检查 (保存前): {exists_before}") # 3. 测试缓存保存 print("\n3️⃣ 测试缓存保存") save_success = save_greeting_cache(test_character, test_audio_data) print(f" 缓存保存成功: {save_success}") # 4. 测试缓存存在检查(保存后) print("\n4️⃣ 测试缓存存在检查(保存后)") exists_after = greeting_cache_exists(test_character) print(f" 缓存存在检查 (保存后): {exists_after}") # 5. 测试缓存加载 print("\n5️⃣ 测试缓存加载") loaded_audio = load_cached_audio(test_character) if loaded_audio: print(f" 缓存加载成功: {len(loaded_audio)} 字节") print(f" 数据匹配: {loaded_audio == test_audio_data}") else: print(" 缓存加载失败") # 6. 检查缓存文件 print("\n6️⃣ 检查缓存文件") cache_file = Path(cache_path) if cache_file.exists(): print(f" 缓存文件存在: {cache_file}") print(f" 文件大小: {cache_file.stat().st_size} 字节") else: print(" 缓存文件不存在") # 7. 清理测试文件 print("\n7️⃣ 清理测试文件") try: if cache_file.exists(): cache_file.unlink() print(" 测试文件已清理") except Exception as e: print(f" 清理失败: {e}") print("\n✅ 缓存功能测试完成") def test_character_configs(): """测试角色配置""" print("\n🧪 测试角色配置") print("=" * 30) characters_dir = Path("characters") if not characters_dir.exists(): print("❌ characters目录不存在") return character_files = list(characters_dir.glob("*.json")) print(f"📁 找到 {len(character_files)} 个角色配置文件:") for character_file in character_files: try: with open(character_file, 'r', encoding='utf-8') as f: config = json.load(f) name = config.get("name", "未知") greeting = config.get("greeting", "无") print(f" 📝 {name}: {greeting[:30]}...") except Exception as e: print(f" ❌ 读取 {character_file.name} 失败: {e}") if __name__ == "__main__": print("🚀 开始测试greeting缓存功能") # 测试缓存功能 test_cache_functions() # 测试角色配置 test_character_configs() print("\n🎉 所有测试完成!")