stock-ai-agent/backend/test_dingtalk.py
2026-02-26 20:46:56 +08:00

103 lines
2.6 KiB
Python

"""
测试钉钉通知服务
"""
import asyncio
import sys
import os
# 添加项目路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from app.services.dingtalk_service import get_dingtalk_service
async def test_dingtalk():
"""测试钉钉消息发送"""
dingtalk = get_dingtalk_service()
print("=" * 50)
print("测试钉钉通知服务")
print("=" * 50)
print(f"服务状态: {'启用' if dingtalk.enabled else '禁用'}")
print(f"Webhook URL: {dingtalk.webhook_url[:50]}...")
print(f"Secret: {dingtalk.secret[:20]}...")
print()
# 测试 1: 发送文本消息
print("测试 1: 发送文本消息...")
success = await dingtalk.send_text("📊 钉钉通知服务测试\n\n这是一条测试消息,来自 Stock Agent 系统。")
print(f"结果: {'✅ 成功' if success else '❌ 失败'}")
print()
# 等待一下
await asyncio.sleep(2)
# 测试 2: 发送 Markdown 消息
print("测试 2: 发送 Markdown 消息...")
markdown_content = """### 📈 交易信号测试
> **交易对**: BTCUSDT
> **方向**: 🟢 做多
> **价格**: $95,000.00
> **信心度**: 85%
**分析理由**:
- 突破关键阻力位
- 量价配合良好
- 多周期共振向上
*来自 Stock Agent 系统*
"""
success = await dingtalk.send_markdown("交易信号", markdown_content)
print(f"结果: {'✅ 成功' if success else '❌ 失败'}")
print()
await asyncio.sleep(2)
# 测试 3: 发送 ActionCard 消息
print("测试 3: 发送 ActionCard 消息...")
card_content = """### 📊 模拟交易报告
#### 统计概览
- 总交易次数: 50
- 胜率: 65%
- 总盈亏: +15.2%
#### 最近交易
| 交易对 | 方向 | 盈亏 |
|--------|------|------|
| BTCUSDT | 做多 | +5.2% |
| ETHUSDT | 做空 | +2.1% |
"""
success = await dingtalk.send_action_card(
title="📊 4小时交易报告",
content=card_content,
btn_orientation="0",
btn_title="查看详情",
btn_url="https://example.com"
)
print(f"结果: {'✅ 成功' if success else '❌ 失败'}")
print()
# 测试 4: 发送交易信号
print("测试 4: 发送交易信号...")
signal = {
'action': 'buy',
'symbol': 'BTCUSDT',
'price': 95000,
'trend': 'uptrend',
'confidence': 85,
'agent_type': 'crypto'
}
success = await dingtalk.send_trading_signal(signal)
print(f"结果: {'✅ 成功' if success else '❌ 失败'}")
print()
print("=" * 50)
print("测试完成!")
print("=" * 50)
if __name__ == "__main__":
asyncio.run(test_dingtalk())