163 lines
4.4 KiB
Python
163 lines
4.4 KiB
Python
"""
|
||
测试 Cookie 文件路径支持
|
||
"""
|
||
import subprocess
|
||
import sys
|
||
import json
|
||
|
||
|
||
def test_cookie_file_param():
|
||
"""测试 --cookies 参数支持文件路径"""
|
||
|
||
print("="*60)
|
||
print("测试 Cookie 文件路径参数支持")
|
||
print("="*60)
|
||
print()
|
||
|
||
# 测试命令
|
||
cmd = [
|
||
sys.executable,
|
||
"xhs_publish.py",
|
||
"--cookies", "test_cookies.json", # 使用文件路径
|
||
"--title", "【测试】Cookie文件路径参数",
|
||
"--content", "测试使用 --cookies 参数传递文件路径,而不是 JSON 字符串",
|
||
"--images", '["https://picsum.photos/800/600","https://picsum.photos/800/600"]',
|
||
"--tags", '["测试","Cookie文件","自动化"]'
|
||
]
|
||
|
||
print("执行命令:")
|
||
print(" ".join(cmd))
|
||
print()
|
||
print("-"*60)
|
||
print()
|
||
|
||
# 执行命令
|
||
try:
|
||
result = subprocess.run(
|
||
cmd,
|
||
capture_output=True,
|
||
text=True,
|
||
encoding='utf-8'
|
||
)
|
||
|
||
# 输出结果
|
||
print("标准输出:")
|
||
print(result.stdout)
|
||
|
||
if result.stderr:
|
||
print("\n标准错误:")
|
||
print(result.stderr)
|
||
|
||
print()
|
||
print("-"*60)
|
||
|
||
# 解析结果
|
||
try:
|
||
# 尝试从输出中提取 JSON 结果
|
||
lines = result.stdout.strip().split('\n')
|
||
for i, line in enumerate(lines):
|
||
if line.strip().startswith('{'):
|
||
json_str = '\n'.join(lines[i:])
|
||
response = json.loads(json_str)
|
||
|
||
print("\n解析结果:")
|
||
print(json.dumps(response, ensure_ascii=False, indent=2))
|
||
|
||
if response.get('success'):
|
||
print("\n✅ 测试成功!Cookie 文件路径参数工作正常")
|
||
if 'url' in response:
|
||
print(f"📎 笔记链接: {response['url']}")
|
||
else:
|
||
print(f"\n❌ 测试失败: {response.get('error')}")
|
||
break
|
||
except json.JSONDecodeError:
|
||
print("⚠️ 无法解析 JSON 输出")
|
||
|
||
return result.returncode == 0
|
||
|
||
except Exception as e:
|
||
print(f"❌ 执行失败: {str(e)}")
|
||
return False
|
||
|
||
|
||
def test_quick_publish():
|
||
"""测试 quick_publish.py 脚本"""
|
||
|
||
print("\n")
|
||
print("="*60)
|
||
print("测试 quick_publish.py 脚本")
|
||
print("="*60)
|
||
print()
|
||
|
||
cmd = [
|
||
sys.executable,
|
||
"quick_publish.py",
|
||
"【测试】快速发布脚本",
|
||
"测试 quick_publish.py 的简化调用方式",
|
||
"https://picsum.photos/800/600,https://picsum.photos/800/600",
|
||
"测试,快速发布,自动化",
|
||
"test_cookies.json"
|
||
]
|
||
|
||
print("执行命令:")
|
||
print(" ".join(cmd))
|
||
print()
|
||
print("-"*60)
|
||
print()
|
||
|
||
try:
|
||
result = subprocess.run(
|
||
cmd,
|
||
capture_output=True,
|
||
text=True,
|
||
encoding='utf-8'
|
||
)
|
||
|
||
print(result.stdout)
|
||
|
||
if result.stderr:
|
||
print("\n标准错误:")
|
||
print(result.stderr)
|
||
|
||
return result.returncode == 0
|
||
|
||
except Exception as e:
|
||
print(f"❌ 执行失败: {str(e)}")
|
||
return False
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print()
|
||
print("🧪 Cookie 文件路径支持测试")
|
||
print()
|
||
|
||
# 检查 Cookie 文件是否存在
|
||
import os
|
||
if not os.path.exists('test_cookies.json'):
|
||
print("❌ 错误: test_cookies.json 文件不存在")
|
||
print("请先创建 Cookie 文件")
|
||
sys.exit(1)
|
||
|
||
print("✅ 找到 Cookie 文件: test_cookies.json")
|
||
print()
|
||
|
||
# 测试1: xhs_publish.py 使用文件路径
|
||
success1 = test_cookie_file_param()
|
||
|
||
# 测试2: quick_publish.py
|
||
success2 = test_quick_publish()
|
||
|
||
# 总结
|
||
print()
|
||
print("="*60)
|
||
print("测试总结")
|
||
print("="*60)
|
||
print(f"xhs_publish.py (Cookie文件): {'✅ 通过' if success1 else '❌ 失败'}")
|
||
print(f"quick_publish.py: {'✅ 通过' if success2 else '❌ 失败'}")
|
||
print()
|
||
|
||
if success1 and success2:
|
||
print("🎉 所有测试通过!")
|
||
else:
|
||
print("⚠️ 部分测试失败,请检查错误信息")
|