2323)
2424from linebot .models import (
2525 MessageEvent , FollowEvent , UnfollowEvent , JoinEvent ,
26- LeaveEvent , PostbackEvent , BeaconEvent ,
26+ LeaveEvent , PostbackEvent , BeaconEvent , AccountLinkEvent ,
2727 TextMessage , ImageMessage , VideoMessage , AudioMessage ,
2828 LocationMessage , StickerMessage , FileMessage ,
2929 SourceUser , SourceRoom , SourceGroup
@@ -225,47 +225,47 @@ def test_parse(self):
225225 self .assertEqual (events [12 ].beacon .dm , '1234567890abcdef' )
226226 self .assertEqual (events [12 ].beacon .device_message , bytearray (b'\x12 4Vx\x90 \xab \xcd \xef ' ))
227227
228- # MessageEvent, SourceGroup with userId, TextMessage
229- self .assertIsInstance (events [13 ], MessageEvent )
228+ # AccountEvent, SourceUser
229+ self .assertIsInstance (events [13 ], AccountLinkEvent )
230230 self .assertEqual (events [13 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
231- self .assertEqual (events [13 ].type , 'message ' )
231+ self .assertEqual (events [13 ].type , 'accountLink ' )
232232 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' )
236235 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' )
242239
243- # MessageEvent, SourceRoom with userId, TextMessage
240+ # MessageEvent, SourceGroup with userId, TextMessage
244241 self .assertIsInstance (events [14 ], MessageEvent )
245242 self .assertEqual (events [14 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
246243 self .assertEqual (events [14 ].type , 'message' )
247244 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 ' )
251248 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 ' )
253250 self .assertIsInstance (events [14 ].message , TextMessage )
254251 self .assertEqual (events [14 ].message .id , '325708' )
255252 self .assertEqual (events [14 ].message .type , 'text' )
256253 self .assertEqual (events [14 ].message .text , 'Hello, world' )
257254
258- # PostbackEvent, SourceUser, with date params
259- self .assertIsInstance (events [15 ], PostbackEvent )
255+ # MessageEvent, SourceRoom with userId, TextMessage
256+ self .assertIsInstance (events [15 ], MessageEvent )
260257 self .assertEqual (events [15 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
261- self .assertEqual (events [15 ].type , 'postback ' )
258+ self .assertEqual (events [15 ].type , 'message ' )
262259 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' )
265263 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' )
269269
270270 # PostbackEvent, SourceUser, with date params
271271 self .assertIsInstance (events [16 ], PostbackEvent )
@@ -277,7 +277,7 @@ def test_parse(self):
277277 self .assertEqual (events [16 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
278278 self .assertEqual (events [16 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
279279 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 ' )
281281
282282 # PostbackEvent, SourceUser, with date params
283283 self .assertIsInstance (events [17 ], PostbackEvent )
@@ -289,22 +289,34 @@ def test_parse(self):
289289 self .assertEqual (events [17 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
290290 self .assertEqual (events [17 ].source .sender_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
291291 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' )
293293
294- # MessageEvent , SourceUser, FileMessage
295- self .assertIsInstance (events [18 ], MessageEvent )
294+ # PostbackEvent , SourceUser, with date params
295+ self .assertIsInstance (events [18 ], PostbackEvent )
296296 self .assertEqual (events [18 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
297- self .assertEqual (events [18 ].type , 'message ' )
297+ self .assertEqual (events [18 ].type , 'postback ' )
298298 self .assertEqual (events [18 ].timestamp , 1462629479859 )
299299 self .assertIsInstance (events [18 ].source , SourceUser )
300300 self .assertEqual (events [18 ].source .type , 'user' )
301301 self .assertEqual (events [18 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
302302 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 )
308320
309321
310322class TestWebhookHandler (unittest .TestCase ):
@@ -345,6 +357,10 @@ def postback(event):
345357 def beacon (event ):
346358 self .calls .append ('7 ' + event .type )
347359
360+ @self .handler .add (AccountLinkEvent )
361+ def account_link (event ):
362+ self .calls .append ('8 ' + event .type )
363+
348364 @self .handler .default ()
349365 def default (event ):
350366 self .calls .append ('default ' + event .type )
@@ -373,11 +389,12 @@ def test_handler(self):
373389 self .assertEqual (self .calls [10 ], '6 postback' )
374390 self .assertEqual (self .calls [11 ], '7 beacon' )
375391 self .assertEqual (self .calls [12 ], '7 beacon' )
376- self .assertEqual (self .calls [13 ], '1 message_text ' )
392+ self .assertEqual (self .calls [13 ], '8 accountLink ' )
377393 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 ' )
379395 self .assertEqual (self .calls [16 ], '6 postback' )
380396 self .assertEqual (self .calls [17 ], '6 postback' )
397+ self .assertEqual (self .calls [18 ], '6 postback' )
381398
382399
383400if __name__ == '__main__' :
0 commit comments