forked from shidenggui/easytrader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_gftrader_get_entrust.py
69 lines (58 loc) · 1.82 KB
/
test_gftrader_get_entrust.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*-
#
# Author: heheqiao([email protected])
#
'''Test for ``trader.FixedTrader``
'''
import mock
from nose.tools import assert_equal
from easytrader import gftrader
@mock.patch.object(gftrader.GFTrader, 'get_value')
def test_get_entrust(mock_get_value):
'''UnitTest of ``gftrader.GFTrader.get_entrust``
'''
mock_get_value.return_value = (
[u'test', u'test'], 100
)
assert_equal(
gftrader.GFTrader().get_entrust(0),
{u'data': [u'test', u'test'], u'total': 100, u'success': True}
)
@mock.patch.object(gftrader.GFTrader, 'do')
def test_get_entrust_with_pos(mock_do):
'''UnitTest of ``gftrader.GFTrader.get_entrust_with_pos``
'''
gftrader.GFTrader().get_entrust_with_pos(u'test')
mock_do.assert_called_with({
u'classname': u'com.gf.etrade.control.StockUF2Control',
u'query_mode': 0, u'query_direction': 0,
u'postion_str': u'test',
u'request_num': 100,
u'method': u'queryDRWT'
})
@mock.patch.object(gftrader.GFTrader, 'get_entrust_without_pos')
@mock.patch.object(gftrader.GFTrader, 'get_entrust_with_pos')
def test_get_value(mock_get_pos, mock_get):
'''UnitTest of ``gftrader.GFTrader.get_value``
'''
# Case1:result[u'total'] < 100
mock_get.return_value = {
u'data': [u'test'], u'total': 1
}
assert_equal(
gftrader.GFTrader().get_value(0),
([u'test'], 1)
)
mock_get_pos.assert_not_called()
# Case2:result[u'total'] >= 100
mock_get.return_value = {
u'data': [{u'position_str': u'test'}], u'total': 100
}
mock_get_pos.return_value = {
u'data': [u'test'], u'total': 50
}
assert_equal(
gftrader.GFTrader().get_value(0),
([{u'position_str': u'test'}, u'test'], 150)
)
mock_get_pos.assert_called_with(0, u'test')