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("⚠️ 部分测试失败,请检查错误信息")
|