feat: make real_trader work
This commit is contained in:
parent
1c83ae754d
commit
c0750cdc87
@ -5,3 +5,6 @@ python 版本: 3.6.8-win32
|
||||
|
||||
## 依赖安装
|
||||
pip install -r requirements.txt
|
||||
|
||||
## 运行准备
|
||||
在环境变量中设置ACCOUNT和PASSWORD
|
@ -72,12 +72,28 @@ if __name__ == "__main__":
|
||||
balance = trader.get_balance()
|
||||
print("账户余额信息:", balance)
|
||||
|
||||
# 获取持仓信息
|
||||
positions = trader.get_positions()
|
||||
print("持仓信息:", positions)
|
||||
|
||||
# 获取当日成交
|
||||
today_trades = trader.get_today_trades()
|
||||
print("当日成交:", today_trades)
|
||||
|
||||
# 获取当日委托
|
||||
today_entrust = trader.get_today_entrust()
|
||||
print("当日委托:", today_entrust)
|
||||
|
||||
# 刷新数据
|
||||
trader.refresh()
|
||||
print("数据已刷新")
|
||||
|
||||
except Exception as e:
|
||||
print("发生错误:", str(e))
|
||||
finally:
|
||||
# 确保退出登录
|
||||
try:
|
||||
trader.logout()
|
||||
print("已安全退出!")
|
||||
except:
|
||||
pass
|
||||
# finally:
|
||||
# # 确保退出登录
|
||||
# try:
|
||||
# trader.logout()
|
||||
# print("已安全退出!")
|
||||
# except:
|
||||
# pass
|
||||
|
1
tests/__init__.py
Normal file
1
tests/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
|
59
tests/test_real_trader.py
Normal file
59
tests/test_real_trader.py
Normal file
@ -0,0 +1,59 @@
|
||||
import unittest
|
||||
from unittest.mock import patch, MagicMock
|
||||
import os
|
||||
import sys
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
from src.real_trader import RealTrader
|
||||
|
||||
class TestRealTrader(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.trader = RealTrader()
|
||||
|
||||
def test_init(self):
|
||||
"""测试初始化"""
|
||||
self.assertEqual(self.trader._exe_path, r"C:\\ths\\xiadan.exe")
|
||||
|
||||
@patch('easytrader.use')
|
||||
def test_login(self, mock_use):
|
||||
"""测试登录功能"""
|
||||
mock_trader = MagicMock()
|
||||
mock_use.return_value = mock_trader
|
||||
|
||||
self.trader.login()
|
||||
|
||||
mock_use.assert_called_once_with("ths5.19")
|
||||
mock_trader.enable_type_keys_for_editor.assert_called_once()
|
||||
mock_trader.prepare.assert_called_once_with(
|
||||
user=self.trader._ACCOUNT,
|
||||
password=self.trader._PASSWORD,
|
||||
exe_path=self.trader._exe_path
|
||||
)
|
||||
|
||||
@patch('easytrader.use')
|
||||
def test_get_balance(self, mock_use):
|
||||
"""测试获取余额"""
|
||||
mock_trader = MagicMock()
|
||||
mock_use.return_value = mock_trader
|
||||
expected_balance = {'资金余额': 1000}
|
||||
mock_trader.balance = expected_balance
|
||||
|
||||
self.trader.login()
|
||||
balance = self.trader.get_balance()
|
||||
|
||||
self.assertEqual(balance, expected_balance)
|
||||
|
||||
@patch('easytrader.use')
|
||||
def test_get_positions(self, mock_use):
|
||||
"""测试获取持仓"""
|
||||
mock_trader = MagicMock()
|
||||
mock_use.return_value = mock_trader
|
||||
expected_positions = [{'证券代码': '000001', '证券名称': '平安银行'}]
|
||||
mock_trader.position = expected_positions
|
||||
|
||||
self.trader.login()
|
||||
positions = self.trader.get_positions()
|
||||
|
||||
self.assertEqual(positions, expected_positions)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user