Completed
Push — develop ( b745b5...362316 )
by Wu
9s
created

test_image_message()   B

Complexity

Conditions 7

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 7
c 2
b 0
f 0
dl 0
loc 17
rs 7.3333
1
from werobot.parser import parse_user_msg
2
3
4
def test_none_message():
5
    assert not parse_user_msg("")
6
7
8
def test_text_message():
9
    message = parse_user_msg("""
10
    <xml>
11
        <ToUserName><![CDATA[toUser]]></ToUserName>
12
        <FromUserName><![CDATA[fromUser]]></FromUserName>
13
        <CreateTime>1348831860</CreateTime>
14
        <MsgType><![CDATA[text]]></MsgType>
15
        <Content><![CDATA[this is a test]]></Content>
16
        <MsgId>1234567890123456</MsgId>
17
    </xml>
18
    """)
19
    assert message.target == "toUser"
20
    assert message.source == "fromUser"
21
    assert message.time == 1348831860
22
    assert message.type == "text"
23
    assert message.content == "this is a test"
24
    assert message.id == 1234567890123456
25
26
27
def test_image_message():
28
    message = parse_user_msg("""
29
    <xml>
30
        <ToUserName><![CDATA[toUser]]></ToUserName>
31
        <FromUserName><![CDATA[fromUser]]></FromUserName>
32
        <CreateTime>1348831860</CreateTime>
33
        <MsgType><![CDATA[image]]></MsgType>
34
        <PicUrl><![CDATA[this is a url]]></PicUrl>
35
        <MsgId>1234567890123456</MsgId>
36
    </xml>
37
    """)
38
    assert message.target == "toUser"
39
    assert message.source == "fromUser"
40
    assert message.time == 1348831860
41
    assert message.type == "image"
42
    assert message.img == "this is a url"
43
    assert message.id == 1234567890123456
44
45
46
def test_location_message():
47
    message = parse_user_msg("""
48
    <xml>
49
        <ToUserName><![CDATA[toUser]]></ToUserName>
50
        <FromUserName><![CDATA[fromUser]]></FromUserName>
51
        <CreateTime>1351776360</CreateTime>
52
        <MsgType><![CDATA[location]]></MsgType>
53
        <Location_X>23.134521</Location_X>
54
        <Location_Y>113.358803</Location_Y>
55
        <Scale>20</Scale>
56
        <Label><![CDATA[Location]]></Label>
57
        <MsgId>1234567890123456</MsgId>
58
    </xml>
59
    """)
60
    assert message.target == "toUser"
61
    assert message.source == "fromUser"
62
    assert message.time == 1351776360
63
    assert message.type == "location"
64
    assert message.location == (23.134521, 113.358803)
65
    assert message.scale == 20
66
    assert message.label == "Location"
67
    assert message.id == 1234567890123456
68
69
70
def test_link_message():
71
    message = parse_user_msg("""
72
    <xml>
73
        <ToUserName><![CDATA[toUser]]></ToUserName>
74
        <FromUserName><![CDATA[fromUser]]></FromUserName>
75
        <CreateTime>1351776360</CreateTime>
76
        <MsgType><![CDATA[link]]></MsgType>
77
        <Title><![CDATA[WeRoBot]]></Title>
78
        <Description><![CDATA[Link to WeRoBot]]></Description>
79
        <Url><![CDATA[https://github.com/whtsky/WeRoBot]]></Url>
80
        <MsgId>1234567890123456</MsgId>
81
    </xml>
82
    """)
83
    assert message.target == "toUser"
84
    assert message.source == "fromUser"
85
    assert message.time == 1351776360
86
    assert message.type == "link"
87
    assert message.title == "WeRoBot"
88
    assert message.description == "Link to WeRoBot"
89
    assert message.url == "https://github.com/whtsky/WeRoBot"
90
    assert message.id == 1234567890123456
91
92
93
def test_voice_message():
94
    message = parse_user_msg("""
95
    <xml>
96
        <ToUserName><![CDATA[toUser]]></ToUserName>
97
        <FromUserName><![CDATA[fromUser]]></FromUserName>
98
        <CreateTime>1357290913</CreateTime>
99
        <MsgType><![CDATA[voice]]></MsgType>
100
        <MediaId><![CDATA[media_id]]></MediaId>
101
        <Format><![CDATA[Format]]></Format>
102
        <Recognition><![CDATA[Meow~]]></Recognition>
103
        <MsgId>1234567890123456</MsgId>
104
    </xml>
105
    """)
106
    assert message.target == "toUser"
107
    assert message.source == "fromUser"
108
    assert message.time == 1357290913
109
    assert message.type == "voice"
110
    assert message.media_id == "media_id"
111
    assert message.format == "Format"
112
    assert message.recognition == "Meow~"
113
    assert message.id == 1234567890123456
114
115
116
def test_unknown_message():
117
    xml = """
118
    <xml>
119
        <ToUserName><![CDATA[toUser]]></ToUserName>
120
        <FromUserName><![CDATA[fromUser]]></FromUserName>
121
        <CreateTime>1351776360</CreateTime>
122
        <MsgType><![CDATA[unknown]]></MsgType>
123
        <Title><![CDATA[WeRoBot]]></Title>
124
        <Description><![CDATA[Link to WeRoBot]]></Description>
125
        <Url><![CDATA[https://github.com/whtsky/WeRoBot]]></Url>
126
        <MsgId>1234567890123456</MsgId>
127
    </xml>
128
    """
129
    message = parse_user_msg(xml)
130
    assert message.raw == xml
131
    assert message.target == "toUser"
132
    assert message.source == "fromUser"
133
    assert message.time == 1351776360
134
135
136
def test_subscribe_event():
137
    message = parse_user_msg("""
138
    <xml>
139
        <ToUserName><![CDATA[toUser]]></ToUserName>
140
        <FromUserName><![CDATA[FromUser]]></FromUserName>
141
        <CreateTime>123456789</CreateTime>
142
        <MsgType><![CDATA[event]]></MsgType>
143
        <Event><![CDATA[subscribe]]></Event>
144
    </xml>
145
    """)
146
    assert message.target == "toUser"
147
    assert message.source == "FromUser"
148
    assert message.time == 123456789
149
    assert message.type == "subscribe_event"
150
151
    message = parse_user_msg("""
152
    <xml><ToUserName><![CDATA[toUser]]></ToUserName>
153
        <FromUserName><![CDATA[FromUser]]></FromUserName>
154
        <CreateTime>123456789</CreateTime>
155
        <MsgType><![CDATA[event]]></MsgType>
156
        <Event><![CDATA[subscribe]]></Event>
157
        <EventKey><![CDATA[qrscene_123123]]></EventKey>
158
        <Ticket><![CDATA[TICKET]]></Ticket>
159
    </xml>
160
    """)
161
    assert message.target == "toUser"
162
    assert message.source == "FromUser"
163
    assert message.time == 123456789
164
    assert message.type == "subscribe_event"
165
    assert message.key == "qrscene_123123"
166
    assert message.ticket == "TICKET"
167
168
169
def test_unsubscribe_event():
170
    message = parse_user_msg("""
171
    <xml>
172
        <ToUserName><![CDATA[toUser]]></ToUserName>
173
        <FromUserName><![CDATA[fromUser]]></FromUserName>
174
        <CreateTime>123456789</CreateTime>
175
        <MsgType><![CDATA[event]]></MsgType>
176
        <Event><![CDATA[unsubscribe]]></Event>
177
    </xml>
178
    """)
179
    assert message.target == "toUser"
180
    assert message.source == "fromUser"
181
    assert message.time == 123456789
182
    assert message.type == "unsubscribe_event"
183
184
185
def test_scan_event():
186
    message = parse_user_msg("""
187
    <xml>
188
        <ToUserName><![CDATA[toUser]]></ToUserName>
189
        <FromUserName><![CDATA[FromUser]]></FromUserName>
190
        <CreateTime>123456789</CreateTime>
191
        <MsgType><![CDATA[event]]></MsgType>
192
        <Event><![CDATA[SCAN]]></Event>
193
        <EventKey><![CDATA[SCENE_VALUE]]></EventKey>
194
        <Ticket><![CDATA[TICKET]]></Ticket>
195
    </xml>
196
    """)
197
    assert message.target == "toUser"
198
    assert message.source == "FromUser"
199
    assert message.time == 123456789
200
    assert message.type == "scan_event"
201
    assert message.key == "SCENE_VALUE"
202
    assert message.ticket == "TICKET"
203
204
205
def test_click_event():
206
    message = parse_user_msg("""
207
    <xml>
208
        <ToUserName><![CDATA[toUser]]></ToUserName>
209
        <FromUserName><![CDATA[fromUser]]></FromUserName>
210
        <CreateTime>123456789</CreateTime>
211
        <MsgType><![CDATA[event]]></MsgType>
212
        <Event><![CDATA[CLICK]]></Event>
213
        <EventKey><![CDATA[EVENTKEY]]></EventKey>
214
    </xml>
215
    """)
216
    assert message.target == "toUser"
217
    assert message.source == "fromUser"
218
    assert message.time == 123456789
219
    assert message.type == "click_event"
220
    assert message.key == "EVENTKEY"
221
222
223
def test_view_event():
224
    message = parse_user_msg("""
225
    <xml>
226
        <ToUserName><![CDATA[toUser]]></ToUserName>
227
        <FromUserName><![CDATA[FromUser]]></FromUserName>
228
        <CreateTime>123456789</CreateTime>
229
        <MsgType><![CDATA[event]]></MsgType>
230
        <Event><![CDATA[VIEW]]></Event>
231
        <EventKey><![CDATA[www.qq.com]]></EventKey>
232
    </xml>""")
233
    assert message.target == "toUser"
234
    assert message.source == "FromUser"
235
    assert message.time == 123456789
236
    assert message.type == "view_event"
237
    assert message.key == "www.qq.com"
238
239
240
def test_location_event():
241
    message = parse_user_msg("""
242
    <xml>
243
        <ToUserName><![CDATA[toUser]]></ToUserName>
244
        <FromUserName><![CDATA[fromUser]]></FromUserName>
245
        <CreateTime>123456789</CreateTime>
246
        <MsgType><![CDATA[event]]></MsgType>
247
        <Event><![CDATA[LOCATION]]></Event>
248
        <Latitude>23.137466</Latitude>
249
        <Longitude>113.352425</Longitude>
250
        <Precision>119.385040</Precision>
251
    </xml>
252
    """)
253
    assert message.target == "toUser"
254
    assert message.source == "fromUser"
255
    assert message.time == 123456789
256
    assert message.type == "location_event"
257
    assert message.latitude == 23.137466
258
    assert message.longitude == 113.352425
259
    assert message.precision == 119.385040
260
261
262
def test_unknown_event():
263
    message = parse_user_msg("""
264
    <xml>
265
        <ToUserName><![CDATA[toUser]]></ToUserName>
266
        <FromUserName><![CDATA[FromUser]]></FromUserName>
267
        <CreateTime>123456789</CreateTime>
268
        <MsgType><![CDATA[event]]></MsgType>
269
        <Event><![CDATA[unknown]]></Event>
270
    </xml>
271
    """)
272
    assert message.target == "toUser"
273
    assert message.source == "FromUser"
274
    assert message.time == 123456789
275
    assert message.type == "unknown_event"
276