import os import sys from user_database import UserDatabase def test_user_database(): # 获取数据库路径 db_path = os.path.join(os.path.dirname(__file__), 'users.db') print(f"测试数据库路径: {db_path}") try: # 初始化数据库 db = UserDatabase(db_path) print("✅ 数据库初始化成功") # 测试用户创建 test_username = "testuser" test_email = "test@example.com" test_password = "Test123456" # 先尝试删除测试用户(如果存在) try: user = db.get_user_by_username(test_username) if user: print(f"⚠️ 测试用户 '{test_username}' 已存在,尝试创建新的测试用户") test_username = "testuser_new" test_email = "test_new@example.com" except Exception as e: print(f"ℹ️ 检查用户时发生错误: {e}") # 创建新用户 print(f"\n🔄 创建测试用户: {test_username}") user_id = db.create_user(test_username, test_password, test_email) print(f"✅ 用户创建成功! 用户ID: {user_id}") # 测试获取用户信息 print(f"\n🔄 测试获取用户信息") user = db.get_user_by_username(test_username) if user: print(f"✅ 用户信息获取成功!") print(f" - 用户ID: {user['user_id']}") print(f" - 用户名: {user['username']}") print(f" - 邮箱: {user['email']}") print(f" - 创建时间: {user['created_at']}") else: print(f"❌ 无法获取用户信息") # 测试密码验证 print(f"\n🔄 测试密码验证") # 正确密码 valid_user = db.verify_password(test_username, test_password) if valid_user: print(f"✅ 正确密码验证成功") else: print(f"❌ 正确密码验证失败") # 错误密码 invalid_user = db.verify_password(test_username, "WrongPassword") if not invalid_user: print(f"✅ 错误密码验证正确(返回None)") else: print(f"❌ 错误密码验证失败(应返回None)") # 测试更新登录时间 print(f"\n🔄 测试更新登录时间") if db.update_login_time(user_id): print(f"✅ 登录时间更新成功") # 验证更新是否成功 updated_user = db.get_user_by_id(user_id) print(f" - 更新后的最后登录时间: {updated_user['last_login_at']}") else: print(f"❌ 登录时间更新失败") print("\n🎉 所有测试完成!") return True except Exception as e: print(f"❌ 测试失败: {str(e)}") import traceback traceback.print_exc() return False finally: if 'db' in locals(): try: db.close() print("ℹ️ 数据库连接已关闭") except: pass if __name__ == "__main__": print("====================================") print("用户数据库功能测试") print("====================================") success = test_user_database() sys.exit(0 if success else 1)