import requests import time # API的基础URL BASE_URL = "http://localhost:9676/api/v1" def test_delete_content(): """测试删除Content的API端点""" print("测试删除Content API端点...") try: # 首先添加一个测试内容 print("1. 添加测试内容...") content_type_response = requests.get(f"{BASE_URL}/type/get?code=FAQ") if content_type_response.status_code == 200: content_type_data = content_type_response.json() if content_type_data["count"] > 0: content_type_id = content_type_data["data"][0]["id"] # 添加测试内容 test_content = { "type": content_type_id, "question": "测试删除功能的问题", "answer": "测试删除功能的答案" } save_response = requests.post(f"{BASE_URL}/content/save", json=test_content) if save_response.status_code == 201: save_data = save_response.json() content_id = save_data['saved'][0]['id'] print(f" 添加的内容ID: {content_id}") # 现在测试删除 print("2. 测试删除功能...") delete_response = requests.delete(f"{BASE_URL}/content/delete", json={"id": content_id}) print(f" 删除响应状态码: {delete_response.status_code}") print(f" 删除响应正文: {delete_response.text}") # 验证内容是否真的被删除了 print("3. 验证内容是否被删除...") get_response = requests.get(f"{BASE_URL}/content/get?id={content_id}") print(f" 获取已删除内容的响应状态码: {get_response.status_code}") print(f" 获取已删除内容的响应正文: {get_response.text}") return True else: print(f" 添加测试内容失败: {save_response.text}") return False else: print(" 没有找到FAQ类型") return False else: print(f" 获取类型失败: {content_type_response.text}") return False except Exception as e: print(f" 测试删除功能时出错: {e}") return False def test_delete_content_by_url_param(): """测试通过URL参数删除Content的API端点""" print("\n测试通过URL参数删除Content API端点...") try: # 首先添加一个测试内容 print("1. 添加测试内容...") content_type_response = requests.get(f"{BASE_URL}/type/get?code=FAQ") if content_type_response.status_code == 200: content_type_data = content_type_response.json() if content_type_data["count"] > 0: content_type_id = content_type_data["data"][0]["id"] # 添加测试内容 test_content = { "type": content_type_id, "question": "测试URL参数删除的问题", "answer": "测试URL参数删除的答案" } save_response = requests.post(f"{BASE_URL}/content/save", json=test_content) if save_response.status_code == 201: save_data = save_response.json() content_id = save_data['saved'][0]['id'] print(f" 添加的内容ID: {content_id}") # 现在测试通过URL参数删除 print("2. 测试通过URL参数删除功能...") delete_response = requests.delete(f"{BASE_URL}/content/delete?id={content_id}") print(f" 删除响应状态码: {delete_response.status_code}") print(f" 删除响应正文: {delete_response.text}") return True else: print(f" 添加测试内容失败: {save_response.text}") return False else: print(" 没有找到FAQ类型") return False else: print(f" 获取类型失败: {content_type_response.text}") return False except Exception as e: print(f" 测试通过URL参数删除功能时出错: {e}") return False def test_delete_nonexistent_content(): """测试删除不存在的Content""" print("\n测试删除不存在的Content...") try: # 尝试删除一个不存在的ID delete_response = requests.delete(f"{BASE_URL}/content/delete", json={"id": 99999}) print(f" 删除不存在内容的响应状态码: {delete_response.status_code}") print(f" 删除不存在内容的响应正文: {delete_response.text}") # 预期应该返回404 if delete_response.status_code == 404: print(" ✓ 正确返回404状态码") return True else: print(" ✗ 未正确返回404状态码") return False except Exception as e: print(f" 测试删除不存在内容时出错: {e}") return False if __name__ == "__main__": print("开始测试删除Content API...\n") # 等待片刻以便服务器准备就绪(如果正在运行) time.sleep(1) # 运行测试 test_delete_content() test_delete_content_by_url_param() test_delete_nonexistent_content() print("\n删除API测试完成!")