25
25
from linebot .models import (
26
26
MessageEvent , FollowEvent , UnfollowEvent , JoinEvent ,
27
27
LeaveEvent , PostbackEvent , BeaconEvent , AccountLinkEvent ,
28
- MemberJoinedEvent , MemberLeftEvent , ThingsEvent ,
28
+ MemberJoinedEvent , MemberLeftEvent ,
29
29
UnknownEvent ,
30
30
TextMessage , ImageMessage , VideoMessage , AudioMessage ,
31
31
LocationMessage , StickerMessage , FileMessage ,
@@ -70,7 +70,7 @@ def test_parse(self):
70
70
events = self .parser .parse (body , 'channel_secret' )
71
71
72
72
# events count
73
- self .assertEqual (len (events ), 30 )
73
+ self .assertEqual (len (events ), 27 )
74
74
75
75
# MessageEvent, SourceUser, TextMessage
76
76
self .assertIsInstance (events [0 ], MessageEvent )
@@ -392,75 +392,75 @@ def test_parse(self):
392
392
self .assertEqual (events [18 ].postback .data , 'action=buyItem&itemId=123123&color=red' )
393
393
self .assertEqual (events [18 ].postback .params ['datetime' ], '2013-04-01T10:00' )
394
394
395
- # ThingsEvent, SourceUser, link
396
- self .assertIsInstance (events [19 ], ThingsEvent )
397
- self .assertEqual (events [19 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA ' )
398
- self .assertEqual (events [19 ].type , 'things ' )
395
+ # MemberJoinedEvent
396
+ self .assertIsInstance (events [19 ], MemberJoinedEvent )
397
+ self .assertEqual (events [19 ].reply_token , '0f3779fba3b349968c5d07db31eabf65 ' )
398
+ self .assertEqual (events [19 ].type , 'memberJoined ' )
399
399
self .assertEqual (events [19 ].mode , 'active' )
400
400
self .assertEqual (events [19 ].timestamp , 1462629479859 )
401
- self .assertIsInstance (events [19 ].source , SourceUser )
402
- self .assertEqual (events [19 ].source .type , 'user ' )
403
- self .assertEqual (events [19 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8 ' )
401
+ self .assertIsInstance (events [19 ].source , SourceGroup )
402
+ self .assertEqual (events [19 ].source .type , 'group ' )
403
+ self .assertEqual (events [19 ].source .group_id , 'C4af4980629... ' )
404
404
self .assertEqual (events [19 ].webhook_event_id , 'testwebhookeventid' )
405
405
self .assertIsInstance (events [19 ].delivery_context , DeliveryContext )
406
406
self .assertFalse (events [19 ].delivery_context .is_redelivery )
407
- self .assertIsInstance (events [19 ].things , DeviceLink )
408
- self .assertEqual (events [19 ].things .type , 'link' )
409
- self .assertEqual (events [19 ].things .device_id , 't2c449c9d1' )
407
+ self .assertEqual (len (events [19 ].joined .members ), 2 )
408
+ self .assertIsInstance (events [19 ].joined .members [0 ], SourceUser )
409
+ self .assertEqual (events [19 ].joined .members [0 ].user_id , 'U4af4980629...' )
410
+ self .assertEqual (events [19 ].joined .members [1 ].user_id , 'U91eeaf62d9...' )
410
411
411
- # MemberJoinedEvent
412
- self .assertIsInstance (events [20 ], MemberJoinedEvent )
413
- self .assertEqual (events [20 ].reply_token , '0f3779fba3b349968c5d07db31eabf65' )
414
- self .assertEqual (events [20 ].type , 'memberJoined' )
412
+ # MemberLeftEvent
413
+ self .assertIsInstance (events [20 ], MemberLeftEvent )
414
+ self .assertEqual (events [20 ].type , 'memberLeft' )
415
415
self .assertEqual (events [20 ].mode , 'active' )
416
- self .assertEqual (events [20 ].timestamp , 1462629479859 )
416
+ self .assertEqual (events [20 ].timestamp , 1462629479960 )
417
417
self .assertIsInstance (events [20 ].source , SourceGroup )
418
418
self .assertEqual (events [20 ].source .type , 'group' )
419
419
self .assertEqual (events [20 ].source .group_id , 'C4af4980629...' )
420
420
self .assertEqual (events [20 ].webhook_event_id , 'testwebhookeventid' )
421
421
self .assertIsInstance (events [20 ].delivery_context , DeliveryContext )
422
422
self .assertFalse (events [20 ].delivery_context .is_redelivery )
423
- self .assertEqual (len (events [20 ].joined .members ), 2 )
424
- self .assertIsInstance (events [20 ].joined .members [0 ], SourceUser )
425
- self .assertEqual (events [20 ].joined .members [0 ].user_id , 'U4af4980629...' )
426
- self .assertEqual (events [20 ].joined .members [1 ].user_id , 'U91eeaf62d9...' )
423
+ self .assertEqual (len (events [20 ].left .members ), 2 )
424
+ self .assertIsInstance (events [20 ].left .members [0 ], SourceUser )
425
+ self .assertEqual (events [20 ].left .members [0 ].user_id , 'U4af4980629...' )
426
+ self .assertEqual (events [20 ].left .members [1 ].user_id , 'U91eeaf62d9...' )
427
427
428
- # MemberLeftEvent
429
- self .assertIsInstance (events [21 ], MemberLeftEvent )
430
- self .assertEqual (events [21 ].type , 'memberLeft' )
428
+ # MessageEvent, SourceUser, FileMessage
429
+ self .assertIsInstance (events [21 ], MessageEvent )
430
+ self .assertEqual (events [21 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
431
+ self .assertEqual (events [21 ].type , 'message' )
431
432
self .assertEqual (events [21 ].mode , 'active' )
432
- self .assertEqual (events [21 ].timestamp , 1462629479960 )
433
- self .assertIsInstance (events [21 ].source , SourceGroup )
434
- self .assertEqual (events [21 ].source .type , 'group ' )
435
- self .assertEqual (events [21 ].source .group_id , 'C4af4980629... ' )
433
+ self .assertEqual (events [21 ].timestamp , 1462629479859 )
434
+ self .assertIsInstance (events [21 ].source , SourceUser )
435
+ self .assertEqual (events [21 ].source .type , 'user ' )
436
+ self .assertEqual (events [21 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8 ' )
436
437
self .assertEqual (events [21 ].webhook_event_id , 'testwebhookeventid' )
437
438
self .assertIsInstance (events [21 ].delivery_context , DeliveryContext )
438
439
self .assertFalse (events [21 ].delivery_context .is_redelivery )
439
- self .assertEqual ( len ( events [21 ].left . members ), 2 )
440
- self .assertIsInstance (events [21 ].left . members [ 0 ], SourceUser )
441
- self .assertEqual (events [21 ].left . members [ 0 ]. user_id , 'U4af4980629... ' )
442
- self .assertEqual (events [21 ].left . members [ 1 ]. user_id , 'U91eeaf62d9...' )
443
-
444
- # ThingsEvent, SourceUser, unlink
445
- self . assertIsInstance ( events [ 22 ], ThingsEvent )
446
- self .assertEqual (events [22 ]. reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
447
- self .assertEqual (events [22 ].type , 'things ' )
440
+ self .assertIsInstance ( events [21 ].message , FileMessage )
441
+ self .assertEqual (events [21 ].message . id , '325708' )
442
+ self .assertEqual (events [21 ].message . type , 'file ' )
443
+ self .assertEqual (events [21 ].message . file_name , "file.txt" )
444
+ self . assertEqual ( events [ 21 ]. message . file_size , 2138 )
445
+
446
+ # UnsendEvent
447
+ self .assertIsInstance (events [22 ], UnsendEvent )
448
+ self .assertEqual (events [22 ].type , 'unsend ' )
448
449
self .assertEqual (events [22 ].mode , 'active' )
449
- self .assertEqual (events [22 ].timestamp , 1462629479859 )
450
- self .assertIsInstance (events [22 ].source , SourceUser )
451
- self .assertEqual (events [22 ].source .type , 'user ' )
450
+ self .assertEqual (events [22 ].timestamp , 1547817848122 )
451
+ self .assertIsInstance (events [22 ].source , SourceGroup )
452
+ self .assertEqual (events [22 ].source .type , 'group ' )
452
453
self .assertEqual (events [22 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
453
454
self .assertEqual (events [22 ].webhook_event_id , 'testwebhookeventid' )
454
455
self .assertIsInstance (events [22 ].delivery_context , DeliveryContext )
455
456
self .assertFalse (events [22 ].delivery_context .is_redelivery )
456
- self .assertIsInstance (events [22 ].things , DeviceUnlink )
457
- self .assertEqual (events [22 ].things .type , 'unlink' )
458
- self .assertEqual (events [22 ].things .device_id , 't2c449c9d1' )
457
+ self .assertIsInstance (events [22 ].unsend , Unsend )
458
+ self .assertEqual (events [22 ].unsend .message_id , '325708' )
459
459
460
- # MessageEvent, SourceUser, FileMessage
461
- self .assertIsInstance (events [23 ], MessageEvent )
460
+ # VideoPlayCompleteEvent
461
+ self .assertIsInstance (events [23 ], VideoPlayCompleteEvent )
462
462
self .assertEqual (events [23 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
463
- self .assertEqual (events [23 ].type , 'message ' )
463
+ self .assertEqual (events [23 ].type , 'videoPlayComplete ' )
464
464
self .assertEqual (events [23 ].mode , 'active' )
465
465
self .assertEqual (events [23 ].timestamp , 1462629479859 )
466
466
self .assertIsInstance (events [23 ].source , SourceUser )
@@ -469,107 +469,48 @@ def test_parse(self):
469
469
self .assertEqual (events [23 ].webhook_event_id , 'testwebhookeventid' )
470
470
self .assertIsInstance (events [23 ].delivery_context , DeliveryContext )
471
471
self .assertFalse (events [23 ].delivery_context .is_redelivery )
472
- self .assertIsInstance (events [23 ].message , FileMessage )
473
- self .assertEqual (events [23 ].message .id , '325708' )
474
- self .assertEqual (events [23 ].message .type , 'file' )
475
- self .assertEqual (events [23 ].message .file_name , "file.txt" )
476
- self .assertEqual (events [23 ].message .file_size , 2138 )
477
-
478
- # ThingsEvent, SourceUser, scenarioResult
479
- self .assertIsInstance (events [24 ], ThingsEvent )
480
- self .assertEqual (events [24 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
481
- self .assertEqual (events [24 ].type , 'things' )
472
+ self .assertIsInstance (events [23 ].video_play_complete , VideoPlayComplete )
473
+ self .assertEqual (events [23 ].video_play_complete .tracking_id , 'track_id' )
474
+
475
+ # MessageEvent, SourceUser, ImageMessage with ImageSet
476
+ self .assertIsInstance (events [1 ], MessageEvent )
477
+ self .assertEqual (events [24 ].reply_token , 'fbf94e269485410da6b7e3a5e33283e8' )
478
+ self .assertEqual (events [24 ].type , 'message' )
482
479
self .assertEqual (events [24 ].mode , 'active' )
483
- self .assertEqual (events [24 ].timestamp , 1547817848122 )
480
+ self .assertEqual (events [24 ].timestamp , 1627356924722 )
484
481
self .assertIsInstance (events [24 ].source , SourceUser )
485
482
self .assertEqual (events [24 ].source .type , 'user' )
486
483
self .assertEqual (events [24 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
487
484
self .assertEqual (events [24 ].webhook_event_id , 'testwebhookeventid' )
488
485
self .assertIsInstance (events [24 ].delivery_context , DeliveryContext )
489
486
self .assertFalse (events [24 ].delivery_context .is_redelivery )
490
- self .assertIsInstance (events [24 ].things , ScenarioResult )
491
- self .assertEqual (events [24 ].things .type , 'scenarioResult' )
492
- self .assertEqual (events [24 ].things .device_id , 't2c449c9d1' )
493
- self .assertEqual (events [24 ].things .result .scenario_id , 'XXX' )
494
- self .assertEqual (events [24 ].things .result .revision , 2 )
495
- self .assertEqual (events [24 ].things .result .start_time , 1547817845950 )
496
- self .assertEqual (events [24 ].things .result .end_time , 1547817845952 )
497
- self .assertEqual (events [24 ].things .result .result_code , 'success' )
498
- self .assertEqual (events [24 ].things .result .ble_notification_payload , 'AQ==' )
499
- self .assertIsInstance (events [24 ].things .result .action_results [0 ], ActionResult )
500
- self .assertEqual (events [24 ].things .result .action_results [0 ].type , 'binary' )
501
- self .assertEqual (events [24 ].things .result .action_results [0 ].data , '/w==' )
502
- self .assertIsInstance (events [24 ].things .result .action_results [1 ], ActionResult )
503
- self .assertEqual (events [24 ].things .result .action_results [1 ].type , 'void' )
487
+ self .assertIsInstance (events [24 ].message , ImageMessage )
488
+ self .assertEqual (events [24 ].message .id , '354718705033693861' )
489
+ self .assertEqual (events [24 ].message .type , 'image' )
490
+ self .assertEqual (events [24 ].message .content_provider .type , 'line' )
491
+ self .assertEqual (events [24 ].message .image_set .id , 'E005D41A7288F41B655' )
492
+ self .assertEqual (events [24 ].message .image_set .index , 2 )
493
+ self .assertEqual (events [24 ].message .image_set .total , 2 )
504
494
505
- # UnsendEvent
506
- self .assertIsInstance (events [25 ], UnsendEvent )
507
- self .assertEqual (events [25 ].type , 'unsend' )
495
+ # MessageEvent, SourceUser, TextMessage (Redeliveried)
496
+ self .assertIsInstance (events [25 ], MessageEvent )
497
+ self .assertEqual (events [25 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
498
+ self .assertEqual (events [25 ].type , 'message' )
508
499
self .assertEqual (events [25 ].mode , 'active' )
509
- self .assertEqual (events [25 ].timestamp , 1547817848122 )
510
- self .assertIsInstance (events [25 ].source , SourceGroup )
511
- self .assertEqual (events [25 ].source .type , 'group ' )
500
+ self .assertEqual (events [25 ].timestamp , 1462629479859 )
501
+ self .assertIsInstance (events [25 ].source , SourceUser )
502
+ self .assertEqual (events [25 ].source .type , 'user ' )
512
503
self .assertEqual (events [25 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
513
504
self .assertEqual (events [25 ].webhook_event_id , 'testwebhookeventid' )
514
505
self .assertIsInstance (events [25 ].delivery_context , DeliveryContext )
515
- self .assertFalse (events [25 ].delivery_context .is_redelivery )
516
- self .assertIsInstance (events [25 ].unsend , Unsend )
517
- self .assertEqual (events [25 ].unsend .message_id , '325708' )
518
-
519
- # VideoPlayCompleteEvent
520
- self .assertIsInstance (events [26 ], VideoPlayCompleteEvent )
521
- self .assertEqual (events [26 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
522
- self .assertEqual (events [26 ].type , 'videoPlayComplete' )
523
- self .assertEqual (events [26 ].mode , 'active' )
524
- self .assertEqual (events [26 ].timestamp , 1462629479859 )
525
- self .assertIsInstance (events [26 ].source , SourceUser )
526
- self .assertEqual (events [26 ].source .type , 'user' )
527
- self .assertEqual (events [26 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
528
- self .assertEqual (events [26 ].webhook_event_id , 'testwebhookeventid' )
529
- self .assertIsInstance (events [26 ].delivery_context , DeliveryContext )
530
- self .assertFalse (events [26 ].delivery_context .is_redelivery )
531
- self .assertIsInstance (events [26 ].video_play_complete , VideoPlayComplete )
532
- self .assertEqual (events [26 ].video_play_complete .tracking_id , 'track_id' )
533
-
534
- # MessageEvent, SourceUser, ImageMessage with ImageSet
535
- self .assertIsInstance (events [1 ], MessageEvent )
536
- self .assertEqual (events [27 ].reply_token , 'fbf94e269485410da6b7e3a5e33283e8' )
537
- self .assertEqual (events [27 ].type , 'message' )
538
- self .assertEqual (events [27 ].mode , 'active' )
539
- self .assertEqual (events [27 ].timestamp , 1627356924722 )
540
- self .assertIsInstance (events [27 ].source , SourceUser )
541
- self .assertEqual (events [27 ].source .type , 'user' )
542
- self .assertEqual (events [27 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
543
- self .assertEqual (events [27 ].webhook_event_id , 'testwebhookeventid' )
544
- self .assertIsInstance (events [27 ].delivery_context , DeliveryContext )
545
- self .assertFalse (events [27 ].delivery_context .is_redelivery )
546
- self .assertIsInstance (events [27 ].message , ImageMessage )
547
- self .assertEqual (events [27 ].message .id , '354718705033693861' )
548
- self .assertEqual (events [27 ].message .type , 'image' )
549
- self .assertEqual (events [27 ].message .content_provider .type , 'line' )
550
- self .assertEqual (events [27 ].message .image_set .id , 'E005D41A7288F41B655' )
551
- self .assertEqual (events [27 ].message .image_set .index , 2 )
552
- self .assertEqual (events [27 ].message .image_set .total , 2 )
553
-
554
- # MessageEvent, SourceUser, TextMessage (Redeliveried)
555
- self .assertIsInstance (events [28 ], MessageEvent )
556
- self .assertEqual (events [28 ].reply_token , 'nHuyWiB7yP5Zw52FIkcQobQuGDXCTA' )
557
- self .assertEqual (events [28 ].type , 'message' )
558
- self .assertEqual (events [28 ].mode , 'active' )
559
- self .assertEqual (events [28 ].timestamp , 1462629479859 )
560
- self .assertIsInstance (events [28 ].source , SourceUser )
561
- self .assertEqual (events [28 ].source .type , 'user' )
562
- self .assertEqual (events [28 ].source .user_id , 'U206d25c2ea6bd87c17655609a1c37cb8' )
563
- self .assertEqual (events [28 ].webhook_event_id , 'testwebhookeventid' )
564
- self .assertIsInstance (events [28 ].delivery_context , DeliveryContext )
565
- self .assertTrue (events [28 ].delivery_context .is_redelivery )
566
- self .assertIsInstance (events [28 ].message , TextMessage )
567
- self .assertEqual (events [28 ].message .id , '325708' )
568
- self .assertEqual (events [28 ].message .type , 'text' )
569
- self .assertEqual (events [28 ].message .text , 'Hello, world' )
506
+ self .assertTrue (events [25 ].delivery_context .is_redelivery )
507
+ self .assertIsInstance (events [25 ].message , TextMessage )
508
+ self .assertEqual (events [25 ].message .id , '325708' )
509
+ self .assertEqual (events [25 ].message .type , 'text' )
510
+ self .assertEqual (events [25 ].message .text , 'Hello, world' )
570
511
571
512
# UnknownEvent
572
- self .assertIsInstance (events [29 ], UnknownEvent )
513
+ self .assertIsInstance (events [26 ], UnknownEvent )
573
514
574
515
def test_parse_webhook_req_without_destination (self ):
575
516
body = """
0 commit comments