23
23
)
24
24
from linebot .models import (
25
25
MessageEvent , FollowEvent , UnfollowEvent , JoinEvent ,
26
- LeaveEvent , PostbackEvent , BeaconEvent ,
26
+ LeaveEvent , PostbackEvent , BeaconEvent , AccountLinkEvent ,
27
27
TextMessage , ImageMessage , VideoMessage , AudioMessage ,
28
28
LocationMessage , StickerMessage , FileMessage ,
29
29
SourceUser , SourceRoom , SourceGroup
@@ -225,47 +225,47 @@ def test_parse(self):
225
225
self .assertEqual (events [12 ].beacon .dm , '1234567890abcdef' )
226
226
self .assertEqual (events [12 ].beacon .device_message , bytearray (b'\x12 4Vx\x90 \xab \xcd \xef ' ))
227
227
228
- # MessageEvent, SourceGroup with userId, TextMessage
229
- self .assertIsInstance (events [13 ], MessageEvent )
228
+ # AccountEvent, SourceUser
229
+ self .assertIsInstance (events [13 ], AccountLinkEvent )
230
230
self .assertEqual (events [13 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
231
- self .assertEqual (events [13 ].type , 'message ' )
231
+ self .assertEqual (events [13 ].type , 'accountLink ' )
232
232
self .assertEqual (events [13 ].timestamp , 1462629479859 )
233
- self .assertIsInstance (events [13 ].source , SourceGroup )
234
- self .assertEqual (events [13 ].source .type , 'group' )
235
- self .assertEqual (events [13 ].source .group_id , 'Ca56f94637cc4347f90a25382909b24b9' )
233
+ self .assertIsInstance (events [13 ].source , SourceUser )
234
+ self .assertEqual (events [13 ].source .type , 'user' )
236
235
self .assertEqual (events [13 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
237
- self .assertEqual (events [13 ].source .sender_id , 'Ca56f94637cc4347f90a25382909b24b9' )
238
- self .assertIsInstance (events [13 ].message , TextMessage )
239
- self .assertEqual (events [13 ].message .id , '325708' )
240
- self .assertEqual (events [13 ].message .type , 'text' )
241
- self .assertEqual (events [13 ].message .text , 'Hello, world' )
236
+ self .assertEqual (events [13 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
237
+ self .assertEqual (events [13 ].link .result , 'ok' )
238
+ self .assertEqual (events [13 ].link .nonce , 'Vb771wDYtXuammLszK6h9A' )
242
239
243
- # MessageEvent, SourceRoom with userId, TextMessage
240
+ # MessageEvent, SourceGroup with userId, TextMessage
244
241
self .assertIsInstance (events [14 ], MessageEvent )
245
242
self .assertEqual (events [14 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
246
243
self .assertEqual (events [14 ].type , 'message' )
247
244
self .assertEqual (events [14 ].timestamp , 1462629479859 )
248
- self .assertIsInstance (events [14 ].source , SourceRoom )
249
- self .assertEqual (events [14 ].source .type , 'room ' )
250
- self .assertEqual (events [14 ].source .room_id , 'Ra8dbf4673c4c812cd491258042226c99 ' )
245
+ self .assertIsInstance (events [14 ].source , SourceGroup )
246
+ self .assertEqual (events [14 ].source .type , 'group ' )
247
+ self .assertEqual (events [14 ].source .group_id , 'Ca56f94637cc4347f90a25382909b24b9 ' )
251
248
self .assertEqual (events [14 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
252
- self .assertEqual (events [14 ].source .sender_id , 'Ra8dbf4673c4c812cd491258042226c99 ' )
249
+ self .assertEqual (events [14 ].source .sender_id , 'Ca56f94637cc4347f90a25382909b24b9 ' )
253
250
self .assertIsInstance (events [14 ].message , TextMessage )
254
251
self .assertEqual (events [14 ].message .id , '325708' )
255
252
self .assertEqual (events [14 ].message .type , 'text' )
256
253
self .assertEqual (events [14 ].message .text , 'Hello, world' )
257
254
258
- # PostbackEvent, SourceUser, with date params
259
- self .assertIsInstance (events [15 ], PostbackEvent )
255
+ # MessageEvent, SourceRoom with userId, TextMessage
256
+ self .assertIsInstance (events [15 ], MessageEvent )
260
257
self .assertEqual (events [15 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
261
- self .assertEqual (events [15 ].type , 'postback ' )
258
+ self .assertEqual (events [15 ].type , 'message ' )
262
259
self .assertEqual (events [15 ].timestamp , 1462629479859 )
263
- self .assertIsInstance (events [15 ].source , SourceUser )
264
- self .assertEqual (events [15 ].source .type , 'user' )
260
+ self .assertIsInstance (events [15 ].source , SourceRoom )
261
+ self .assertEqual (events [15 ].source .type , 'room' )
262
+ self .assertEqual (events [15 ].source .room_id , 'Ra8dbf4673c4c812cd491258042226c99' )
265
263
self .assertEqual (events [15 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
266
- self .assertEqual (events [15 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
267
- self .assertEqual (events [15 ].postback .data , 'action=buyItem&itemId=123123&color=red' )
268
- self .assertEqual (events [15 ].postback .params ['date' ], '2013-04-01' )
264
+ self .assertEqual (events [15 ].source .sender_id , 'Ra8dbf4673c4c812cd491258042226c99' )
265
+ self .assertIsInstance (events [15 ].message , TextMessage )
266
+ self .assertEqual (events [15 ].message .id , '325708' )
267
+ self .assertEqual (events [15 ].message .type , 'text' )
268
+ self .assertEqual (events [15 ].message .text , 'Hello, world' )
269
269
270
270
# PostbackEvent, SourceUser, with date params
271
271
self .assertIsInstance (events [16 ], PostbackEvent )
@@ -277,7 +277,7 @@ def test_parse(self):
277
277
self .assertEqual (events [16 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
278
278
self .assertEqual (events [16 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
279
279
self .assertEqual (events [16 ].postback .data , 'action=buyItem&itemId=123123&color=red' )
280
- self .assertEqual (events [16 ].postback .params ['time ' ], '10:00 ' )
280
+ self .assertEqual (events [16 ].postback .params ['date ' ], '2013-04-01 ' )
281
281
282
282
# PostbackEvent, SourceUser, with date params
283
283
self .assertIsInstance (events [17 ], PostbackEvent )
@@ -289,22 +289,34 @@ def test_parse(self):
289
289
self .assertEqual (events [17 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
290
290
self .assertEqual (events [17 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
291
291
self .assertEqual (events [17 ].postback .data , 'action=buyItem&itemId=123123&color=red' )
292
- self .assertEqual (events [17 ].postback .params ['datetime ' ], '2013-04-01T10 :00' )
292
+ self .assertEqual (events [17 ].postback .params ['time ' ], '10 :00' )
293
293
294
- # MessageEvent , SourceUser, FileMessage
295
- self .assertIsInstance (events [18 ], MessageEvent )
294
+ # PostbackEvent , SourceUser, with date params
295
+ self .assertIsInstance (events [18 ], PostbackEvent )
296
296
self .assertEqual (events [18 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
297
- self .assertEqual (events [18 ].type , 'message ' )
297
+ self .assertEqual (events [18 ].type , 'postback ' )
298
298
self .assertEqual (events [18 ].timestamp , 1462629479859 )
299
299
self .assertIsInstance (events [18 ].source , SourceUser )
300
300
self .assertEqual (events [18 ].source .type , 'user' )
301
301
self .assertEqual (events [18 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
302
302
self .assertEqual (events [18 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
303
- self .assertIsInstance (events [18 ].message , FileMessage )
304
- self .assertEqual (events [18 ].message .id , '325708' )
305
- self .assertEqual (events [18 ].message .type , 'file' )
306
- self .assertEqual (events [18 ].message .file_name , "file.txt" )
307
- self .assertEqual (events [18 ].message .file_size , 2138 )
303
+ self .assertEqual (events [18 ].postback .data , 'action=buyItem&itemId=123123&color=red' )
304
+ self .assertEqual (events [18 ].postback .params ['datetime' ], '2013-04-01T10:00' )
305
+
306
+ # MessageEvent, SourceUser, FileMessage
307
+ self .assertIsInstance (events [19 ], MessageEvent )
308
+ self .assertEqual (events [19 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
309
+ self .assertEqual (events [19 ].type , 'message' )
310
+ self .assertEqual (events [19 ].timestamp , 1462629479859 )
311
+ self .assertIsInstance (events [19 ].source , SourceUser )
312
+ self .assertEqual (events [19 ].source .type , 'user' )
313
+ self .assertEqual (events [19 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
314
+ self .assertEqual (events [19 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
315
+ self .assertIsInstance (events [19 ].message , FileMessage )
316
+ self .assertEqual (events [19 ].message .id , '325708' )
317
+ self .assertEqual (events [19 ].message .type , 'file' )
318
+ self .assertEqual (events [19 ].message .file_name , "file.txt" )
319
+ self .assertEqual (events [19 ].message .file_size , 2138 )
308
320
309
321
310
322
class TestWebhookHandler (unittest .TestCase ):
@@ -345,6 +357,10 @@ def postback(event):
345
357
def beacon (event ):
346
358
self .calls .append ('7 ' + event .type )
347
359
360
+ @self .handler .add (AccountLinkEvent )
361
+ def account_link (event ):
362
+ self .calls .append ('8 ' + event .type )
363
+
348
364
@self .handler .default ()
349
365
def default (event ):
350
366
self .calls .append ('default ' + event .type )
@@ -373,11 +389,12 @@ def test_handler(self):
373
389
self .assertEqual (self .calls [10 ], '6 postback' )
374
390
self .assertEqual (self .calls [11 ], '7 beacon' )
375
391
self .assertEqual (self .calls [12 ], '7 beacon' )
376
- self .assertEqual (self .calls [13 ], '1 message_text ' )
392
+ self .assertEqual (self .calls [13 ], '8 accountLink ' )
377
393
self .assertEqual (self .calls [14 ], '1 message_text' )
378
- self .assertEqual (self .calls [15 ], '6 postback ' )
394
+ self .assertEqual (self .calls [15 ], '1 message_text ' )
379
395
self .assertEqual (self .calls [16 ], '6 postback' )
380
396
self .assertEqual (self .calls [17 ], '6 postback' )
397
+ self .assertEqual (self .calls [18 ], '6 postback' )
381
398
382
399
383
400
if __name__ == '__main__' :
0 commit comments