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测试完成!")
|